Skip to content

Commit 9d5cc83

Browse files
committed
feat: get space from classroom process
1 parent b14f186 commit 9d5cc83

File tree

9 files changed

+71
-0
lines changed

9 files changed

+71
-0
lines changed

public/app/config/channels.js

+1
Original file line numberDiff line numberDiff line change
@@ -66,4 +66,5 @@ module.exports = {
6666
RESPOND_DELETE_USERS_IN_CLASSROOM_PROMPT_CHANNEL:
6767
'prompt:classroom:user:delete:respond',
6868
EDIT_USER_IN_CLASSROOM_CHANNEL: 'classroom:user:edit',
69+
GET_SPACE_IN_CLASSROOM_CHANNEL: 'classroom:space:get',
6970
};

public/app/config/messages.js

+3
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,8 @@ const SUCCESS_DELETING_USERS_IN_CLASSROOM_MESSAGE =
9797
'The user was successfully deleted';
9898
const ERROR_INVALID_USERNAME_MESSAGE = 'This username is invalid';
9999
const ERROR_NO_USER_TO_DELETE_MESSAGE = 'There is no user to delete';
100+
const ERROR_GETTING_SPACE_IN_CLASSROOM_MESSAGE =
101+
'There was an error getting the space in this classroom';
100102

101103
module.exports = {
102104
ERROR_GETTING_DEVELOPER_MODE,
@@ -164,4 +166,5 @@ module.exports = {
164166
SUCCESS_EDITING_USER_IN_CLASSROOM_MESSAGE,
165167
ERROR_INVALID_USERNAME_MESSAGE,
166168
ERROR_NO_USER_TO_DELETE_MESSAGE,
169+
ERROR_GETTING_SPACE_IN_CLASSROOM_MESSAGE,
167170
};
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
const { GET_SPACE_IN_CLASSROOM_CHANNEL } = require('../config/channels');
2+
const logger = require('../logger');
3+
const { SPACES_COLLECTION, CLASSROOMS_COLLECTION } = require('../db');
4+
5+
const getSpaceInClassroom = (mainWindow, db) => async (
6+
event,
7+
{ id, classroomId }
8+
) => {
9+
try {
10+
// get space in classroom from local db
11+
const space = db
12+
.get(CLASSROOMS_COLLECTION)
13+
.find({ id: classroomId })
14+
.get(SPACES_COLLECTION)
15+
.find({ id })
16+
.value();
17+
mainWindow.webContents.send(GET_SPACE_IN_CLASSROOM_CHANNEL, space);
18+
} catch (err) {
19+
logger.error(err);
20+
mainWindow.webContents.send(GET_SPACE_IN_CLASSROOM_CHANNEL, null);
21+
}
22+
};
23+
24+
module.exports = getSpaceInClassroom;

public/app/listeners/index.js

+2
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ const getClassroom = require('./getClassroom');
4545
const addUserInClassroom = require('./addUserInClassroom');
4646
const deleteUsersInClassroom = require('./deleteUsersInClassroom');
4747
const editUserInClassroom = require('./editUserInClassroom');
48+
const getSpaceInClassroom = require('./getSpaceInClassroom');
4849

4950
module.exports = {
5051
loadSpace,
@@ -93,4 +94,5 @@ module.exports = {
9394
deleteUsersInClassroom,
9495
showDeleteUsersInClassroomPrompt,
9596
editUserInClassroom,
97+
getSpaceInClassroom,
9698
};

public/electron.js

+8
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ const {
7070
DELETE_USERS_IN_CLASSROOM_CHANNEL,
7171
SHOW_DELETE_USERS_IN_CLASSROOM_PROMPT_CHANNEL,
7272
EDIT_USER_IN_CLASSROOM_CHANNEL,
73+
GET_SPACE_IN_CLASSROOM_CHANNEL,
7374
} = require('./app/config/channels');
7475
const env = require('./env.json');
7576
const {
@@ -118,6 +119,7 @@ const {
118119
showDeleteUsersInClassroomPrompt,
119120
deleteUsersInClassroom,
120121
editUserInClassroom,
122+
getSpaceInClassroom,
121123
} = require('./app/listeners');
122124
const isMac = require('./app/utils/isMac');
123125

@@ -539,6 +541,12 @@ app.on('ready', async () => {
539541
editUserInClassroom(mainWindow, db)
540542
);
541543

544+
// called when getting a space in a classroom
545+
ipcMain.on(
546+
GET_SPACE_IN_CLASSROOM_CHANNEL,
547+
getSpaceInClassroom(mainWindow, db)
548+
);
549+
542550
// called when getting the database
543551
ipcMain.on(GET_DATABASE_CHANNEL, async () => {
544552
try {

src/actions/classroom.js

+25
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ import {
1111
FLAG_ADDING_USER_IN_CLASSROOM,
1212
FLAG_EDITING_USER_IN_CLASSROOM,
1313
FLAG_DELETING_USERS_IN_CLASSROOM,
14+
GET_SPACE_IN_CLASSROOM_SUCCEEDED,
15+
FLAG_GETTING_SPACE_IN_CLASSROOM,
1416
} from '../types';
1517
import {
1618
ERROR_GENERAL,
@@ -31,6 +33,7 @@ import {
3133
SHOW_DELETE_USERS_IN_CLASSROOM_PROMPT_CHANNEL,
3234
RESPOND_DELETE_USERS_IN_CLASSROOM_PROMPT_CHANNEL,
3335
EDIT_USER_IN_CLASSROOM_CHANNEL,
36+
GET_SPACE_IN_CLASSROOM_CHANNEL,
3437
} from '../config/channels';
3538
import {
3639
ERROR_MESSAGE_HEADER,
@@ -50,6 +53,7 @@ import {
5053
SUCCESS_EDITING_USER_IN_CLASSROOM_MESSAGE,
5154
SUCCESS_DELETING_USERS_IN_CLASSROOM_MESSAGE,
5255
ERROR_NO_USER_TO_DELETE_MESSAGE,
56+
ERROR_GETTING_SPACE_IN_CLASSROOM_MESSAGE,
5357
} from '../config/messages';
5458
import { createFlag } from './common';
5559

@@ -63,6 +67,7 @@ const flagAddingUserInClassroom = createFlag(FLAG_ADDING_USER_IN_CLASSROOM);
6367
const flagDeletingUsersInClassroom = createFlag(
6468
FLAG_DELETING_USERS_IN_CLASSROOM
6569
);
70+
const flagGetSpaceInClassroom = createFlag(FLAG_GETTING_SPACE_IN_CLASSROOM);
6671

6772
export const getClassrooms = () => dispatch => {
6873
dispatch(flagGettingClassrooms(true));
@@ -304,3 +309,23 @@ export const editUserInClassroom = payload => dispatch => {
304309
dispatch(flagEditingUserInClassroom(false));
305310
});
306311
};
312+
313+
export const getSpaceInClassroom = payload => dispatch => {
314+
dispatch(flagGetSpaceInClassroom(true));
315+
window.ipcRenderer.send(GET_SPACE_IN_CLASSROOM_CHANNEL, payload);
316+
window.ipcRenderer.once(GET_SPACE_IN_CLASSROOM_CHANNEL, (event, response) => {
317+
if (response === ERROR_GENERAL) {
318+
toastr.error(
319+
ERROR_MESSAGE_HEADER,
320+
ERROR_GETTING_SPACE_IN_CLASSROOM_MESSAGE
321+
);
322+
} else {
323+
dispatch({
324+
type: GET_SPACE_IN_CLASSROOM_SUCCEEDED,
325+
payload,
326+
});
327+
}
328+
329+
dispatch(flagGetSpaceInClassroom(false));
330+
});
331+
};

src/config/channels.js

+1
Original file line numberDiff line numberDiff line change
@@ -66,4 +66,5 @@ module.exports = {
6666
RESPOND_DELETE_USERS_IN_CLASSROOM_PROMPT_CHANNEL:
6767
'prompt:classroom:user:delete:respond',
6868
EDIT_USER_IN_CLASSROOM_CHANNEL: 'classroom:user:edit',
69+
GET_SPACE_IN_CLASSROOM_CHANNEL: 'classroom:space:get',
6970
};

src/config/messages.js

+3
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,8 @@ const SUCCESS_EDITING_USER_IN_CLASSROOM_MESSAGE =
9696
const SUCCESS_DELETING_USERS_IN_CLASSROOM_MESSAGE =
9797
'The user was successfully deleted';
9898
const ERROR_NO_USER_TO_DELETE_MESSAGE = 'There is no user to delete';
99+
const ERROR_GETTING_SPACE_IN_CLASSROOM_MESSAGE =
100+
'There was an error getting the space in this classroom';
99101

100102
module.exports = {
101103
ERROR_GETTING_DEVELOPER_MODE,
@@ -162,4 +164,5 @@ module.exports = {
162164
SUCCESS_DELETING_USERS_IN_CLASSROOM_MESSAGE,
163165
SUCCESS_EDITING_USER_IN_CLASSROOM_MESSAGE,
164166
ERROR_NO_USER_TO_DELETE_MESSAGE,
167+
ERROR_GETTING_SPACE_IN_CLASSROOM_MESSAGE,
165168
};

src/types/classroom.js

+4
Original file line numberDiff line numberDiff line change
@@ -12,3 +12,7 @@ export const FLAG_ADDING_USER_IN_CLASSROOM = 'FLAG_ADDING_USER_IN_CLASSROOM';
1212
export const FLAG_DELETING_USERS_IN_CLASSROOM =
1313
'FLAG_DELETING_USERS_IN_CLASSROOM';
1414
export const FLAG_EDITING_USER_IN_CLASSROOM = 'FLAG_EDITING_USER_IN_CLASSROOM';
15+
export const FLAG_GETTING_SPACE_IN_CLASSROOM =
16+
'FLAG_GETTING_SPACE_IN_CLASSROOM';
17+
export const GET_SPACE_IN_CLASSROOM_SUCCEEDED =
18+
'GET_SPACE_IN_CLASSROOM_SUCCEEDED';

0 commit comments

Comments
 (0)