Skip to content

Commit

Permalink
feat: get space from classroom process
Browse files Browse the repository at this point in the history
  • Loading branch information
pyphilia committed May 28, 2020
1 parent b14f186 commit 9d5cc83
Show file tree
Hide file tree
Showing 9 changed files with 71 additions and 0 deletions.
1 change: 1 addition & 0 deletions public/app/config/channels.js
Original file line number Diff line number Diff line change
Expand Up @@ -66,4 +66,5 @@ module.exports = {
RESPOND_DELETE_USERS_IN_CLASSROOM_PROMPT_CHANNEL:
'prompt:classroom:user:delete:respond',
EDIT_USER_IN_CLASSROOM_CHANNEL: 'classroom:user:edit',
GET_SPACE_IN_CLASSROOM_CHANNEL: 'classroom:space:get',
};
3 changes: 3 additions & 0 deletions public/app/config/messages.js
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,8 @@ const SUCCESS_DELETING_USERS_IN_CLASSROOM_MESSAGE =
'The user was successfully deleted';
const ERROR_INVALID_USERNAME_MESSAGE = 'This username is invalid';
const ERROR_NO_USER_TO_DELETE_MESSAGE = 'There is no user to delete';
const ERROR_GETTING_SPACE_IN_CLASSROOM_MESSAGE =
'There was an error getting the space in this classroom';

module.exports = {
ERROR_GETTING_DEVELOPER_MODE,
Expand Down Expand Up @@ -164,4 +166,5 @@ module.exports = {
SUCCESS_EDITING_USER_IN_CLASSROOM_MESSAGE,
ERROR_INVALID_USERNAME_MESSAGE,
ERROR_NO_USER_TO_DELETE_MESSAGE,
ERROR_GETTING_SPACE_IN_CLASSROOM_MESSAGE,
};
24 changes: 24 additions & 0 deletions public/app/listeners/getSpaceInClassroom.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
const { GET_SPACE_IN_CLASSROOM_CHANNEL } = require('../config/channels');
const logger = require('../logger');
const { SPACES_COLLECTION, CLASSROOMS_COLLECTION } = require('../db');

const getSpaceInClassroom = (mainWindow, db) => async (
event,
{ id, classroomId }
) => {
try {
// get space in classroom from local db
const space = db
.get(CLASSROOMS_COLLECTION)
.find({ id: classroomId })
.get(SPACES_COLLECTION)
.find({ id })
.value();
mainWindow.webContents.send(GET_SPACE_IN_CLASSROOM_CHANNEL, space);
} catch (err) {
logger.error(err);
mainWindow.webContents.send(GET_SPACE_IN_CLASSROOM_CHANNEL, null);
}
};

module.exports = getSpaceInClassroom;
2 changes: 2 additions & 0 deletions public/app/listeners/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ const getClassroom = require('./getClassroom');
const addUserInClassroom = require('./addUserInClassroom');
const deleteUsersInClassroom = require('./deleteUsersInClassroom');
const editUserInClassroom = require('./editUserInClassroom');
const getSpaceInClassroom = require('./getSpaceInClassroom');

module.exports = {
loadSpace,
Expand Down Expand Up @@ -93,4 +94,5 @@ module.exports = {
deleteUsersInClassroom,
showDeleteUsersInClassroomPrompt,
editUserInClassroom,
getSpaceInClassroom,
};
8 changes: 8 additions & 0 deletions public/electron.js
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,7 @@ const {
DELETE_USERS_IN_CLASSROOM_CHANNEL,
SHOW_DELETE_USERS_IN_CLASSROOM_PROMPT_CHANNEL,
EDIT_USER_IN_CLASSROOM_CHANNEL,
GET_SPACE_IN_CLASSROOM_CHANNEL,
} = require('./app/config/channels');
const env = require('./env.json');
const {
Expand Down Expand Up @@ -118,6 +119,7 @@ const {
showDeleteUsersInClassroomPrompt,
deleteUsersInClassroom,
editUserInClassroom,
getSpaceInClassroom,
} = require('./app/listeners');
const isMac = require('./app/utils/isMac');

Expand Down Expand Up @@ -539,6 +541,12 @@ app.on('ready', async () => {
editUserInClassroom(mainWindow, db)
);

// called when getting a space in a classroom
ipcMain.on(
GET_SPACE_IN_CLASSROOM_CHANNEL,
getSpaceInClassroom(mainWindow, db)
);

// called when getting the database
ipcMain.on(GET_DATABASE_CHANNEL, async () => {
try {
Expand Down
25 changes: 25 additions & 0 deletions src/actions/classroom.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@ import {
FLAG_ADDING_USER_IN_CLASSROOM,
FLAG_EDITING_USER_IN_CLASSROOM,
FLAG_DELETING_USERS_IN_CLASSROOM,
GET_SPACE_IN_CLASSROOM_SUCCEEDED,
FLAG_GETTING_SPACE_IN_CLASSROOM,
} from '../types';
import {
ERROR_GENERAL,
Expand All @@ -31,6 +33,7 @@ import {
SHOW_DELETE_USERS_IN_CLASSROOM_PROMPT_CHANNEL,
RESPOND_DELETE_USERS_IN_CLASSROOM_PROMPT_CHANNEL,
EDIT_USER_IN_CLASSROOM_CHANNEL,
GET_SPACE_IN_CLASSROOM_CHANNEL,
} from '../config/channels';
import {
ERROR_MESSAGE_HEADER,
Expand All @@ -50,6 +53,7 @@ import {
SUCCESS_EDITING_USER_IN_CLASSROOM_MESSAGE,
SUCCESS_DELETING_USERS_IN_CLASSROOM_MESSAGE,
ERROR_NO_USER_TO_DELETE_MESSAGE,
ERROR_GETTING_SPACE_IN_CLASSROOM_MESSAGE,
} from '../config/messages';
import { createFlag } from './common';

Expand All @@ -63,6 +67,7 @@ const flagAddingUserInClassroom = createFlag(FLAG_ADDING_USER_IN_CLASSROOM);
const flagDeletingUsersInClassroom = createFlag(
FLAG_DELETING_USERS_IN_CLASSROOM
);
const flagGetSpaceInClassroom = createFlag(FLAG_GETTING_SPACE_IN_CLASSROOM);

export const getClassrooms = () => dispatch => {
dispatch(flagGettingClassrooms(true));
Expand Down Expand Up @@ -304,3 +309,23 @@ export const editUserInClassroom = payload => dispatch => {
dispatch(flagEditingUserInClassroom(false));
});
};

export const getSpaceInClassroom = payload => dispatch => {
dispatch(flagGetSpaceInClassroom(true));
window.ipcRenderer.send(GET_SPACE_IN_CLASSROOM_CHANNEL, payload);
window.ipcRenderer.once(GET_SPACE_IN_CLASSROOM_CHANNEL, (event, response) => {
if (response === ERROR_GENERAL) {
toastr.error(
ERROR_MESSAGE_HEADER,
ERROR_GETTING_SPACE_IN_CLASSROOM_MESSAGE
);
} else {
dispatch({
type: GET_SPACE_IN_CLASSROOM_SUCCEEDED,
payload,
});
}

dispatch(flagGetSpaceInClassroom(false));
});
};
1 change: 1 addition & 0 deletions src/config/channels.js
Original file line number Diff line number Diff line change
Expand Up @@ -66,4 +66,5 @@ module.exports = {
RESPOND_DELETE_USERS_IN_CLASSROOM_PROMPT_CHANNEL:
'prompt:classroom:user:delete:respond',
EDIT_USER_IN_CLASSROOM_CHANNEL: 'classroom:user:edit',
GET_SPACE_IN_CLASSROOM_CHANNEL: 'classroom:space:get',
};
3 changes: 3 additions & 0 deletions src/config/messages.js
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,8 @@ const SUCCESS_EDITING_USER_IN_CLASSROOM_MESSAGE =
const SUCCESS_DELETING_USERS_IN_CLASSROOM_MESSAGE =
'The user was successfully deleted';
const ERROR_NO_USER_TO_DELETE_MESSAGE = 'There is no user to delete';
const ERROR_GETTING_SPACE_IN_CLASSROOM_MESSAGE =
'There was an error getting the space in this classroom';

module.exports = {
ERROR_GETTING_DEVELOPER_MODE,
Expand Down Expand Up @@ -162,4 +164,5 @@ module.exports = {
SUCCESS_DELETING_USERS_IN_CLASSROOM_MESSAGE,
SUCCESS_EDITING_USER_IN_CLASSROOM_MESSAGE,
ERROR_NO_USER_TO_DELETE_MESSAGE,
ERROR_GETTING_SPACE_IN_CLASSROOM_MESSAGE,
};
4 changes: 4 additions & 0 deletions src/types/classroom.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,7 @@ export const FLAG_ADDING_USER_IN_CLASSROOM = 'FLAG_ADDING_USER_IN_CLASSROOM';
export const FLAG_DELETING_USERS_IN_CLASSROOM =
'FLAG_DELETING_USERS_IN_CLASSROOM';
export const FLAG_EDITING_USER_IN_CLASSROOM = 'FLAG_EDITING_USER_IN_CLASSROOM';
export const FLAG_GETTING_SPACE_IN_CLASSROOM =
'FLAG_GETTING_SPACE_IN_CLASSROOM';
export const GET_SPACE_IN_CLASSROOM_SUCCEEDED =
'GET_SPACE_IN_CLASSROOM_SUCCEEDED';

0 comments on commit 9d5cc83

Please sign in to comment.