Skip to content

Commit

Permalink
feat: support sequences creation through web sockets (NoMercy235/cyoa…
Browse files Browse the repository at this point in the history
  • Loading branch information
NoMercy235 committed Mar 21, 2020
1 parent 62b3483 commit 8bae81d
Show file tree
Hide file tree
Showing 3 changed files with 57 additions and 0 deletions.
21 changes: 21 additions & 0 deletions src/sockets/constants.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,27 @@ const SocketEvents = {
UserOnline: 'USER_ONLINE',
UserOffline: 'USER_OFFLINE',
UsersOnline: 'USERS_ONLINE',

NewSequenceRequest: 'NEW_SEQUENCE_REQUEST',
UpdateSequenceRequest: 'UPDATE_SEQUENCE_REQUEST',
DeleteSequenceRequest: 'DELETE_SEQUENCE_REQUEST',
NewOptionRequest: 'NEW_OPTION_REQUEST',
UpdateOptionRequest: 'UPDATE_OPTION_REQUEST',
DeleteOptionRequest: 'DELETE_OPTION_REQUEST',

NewSequenceResponse: 'NEW_SEQUENCE_RESPONSE',
UpdateSequenceResponse: 'UPDATE_SEQUENCE_RESPONSE',
DeleteSequenceResponse: 'DELETE_SEQUENCE_RESPONSE',
NewOptionResponse: 'NEW_OPTION_RESPONSE',
UpdateOptionResponse: 'UPDATE_OPTION_RESPONSE',
DeleteOptionResponse: 'DELETE_OPTION_RESPONSE',

NewSequenceError: 'NEW_SEQUENCE_ERROR',
UpdateSequenceError: 'UPDATE_SEQUENCE_ERROR',
DeleteSequenceError: 'DELETE_SEQUENCE_ERROR',
NewOptionError: 'NEW_OPTION_ERROR',
UpdateOptionError: 'UPDATE_OPTION_ERROR',
DeleteOptionError: 'DELETE_OPTION_ERROR',
};

module.exports = {
Expand Down
2 changes: 2 additions & 0 deletions src/sockets/setup.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
const registerUserConnectionSocket = require('./user-connections');
const registerWriteStorySocket = require('./write-story');

const handleSocket = socket => {
registerUserConnectionSocket(socket);
registerWriteStorySocket(socket);
};

module.exports = {
Expand Down
34 changes: 34 additions & 0 deletions src/sockets/write-story.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
const Sequence = require('../models/sequence').model;
const { SocketEvents } = require('./constants');

const handleNewSequence = socket => async (data) => {
console.log(data);
const sequence = new Sequence(data);
sequence.hasScenePic = !!sequence.scenePic;
const lastSeqInOrder = await Sequence.findLastInOrder();
sequence.order = lastSeqInOrder ? lastSeqInOrder.order + 1 : 0;
try {
await sequence.save();
} catch (e) {
socket.emit(
SocketEvents.NewSequenceResponse,
e,
);
}
socket.emit(
SocketEvents.NewSequenceResponse,
sequence,
);
};

function registerWriteStorySocket (socket) {
socket.on(SocketEvents.NewSequenceRequest, handleNewSequence(socket));
socket.on(SocketEvents.UpdateSequenceRequest, () => {
console.log('Update Sequence')
});
socket.on(SocketEvents.DeleteSequenceRequest, () => {
console.log('Delete Sequence')
});
}

module.exports = registerWriteStorySocket;

0 comments on commit 8bae81d

Please sign in to comment.