1- var createError = require ( "http-errors" ) ;
2- var express = require ( "express" ) ;
3- var path = require ( "path" ) ;
4- var bodyParser = require ( "body-parser" ) ;
5- var cookieParser = require ( "cookie-parser" ) ;
6- var logger = require ( "morgan" ) ;
7- var http = require ( 'http' ) ;
8- var graphqlHTTP = require ( "express-graphql" ) ;
9- var indexRouter = require ( "./routes/index" ) ;
10- var usersRouter = require ( "./routes/users" ) ;
11- var graphQlSchema = require ( "./graphql/schema/index" ) ;
12- var graphQlResolvers = require ( "./graphql/resolvers/index" ) ;
13- var isAuth = require ( "./middleware/is-auth" ) ;
14- var Topic = require ( "./models/topic" )
15- var User = require ( './models/user' ) ;
16- const { topics } = require ( "./graphql/resolvers/index" ) ;
1+ const createError = require ( "http-errors" ) ;
2+ const express = require ( "express" ) ;
3+ const path = require ( "path" ) ;
4+ const isAuth = require ( "./middleware/is-auth" ) ;
5+ const bodyParser = require ( "body-parser" ) ;
6+ const cookieParser = require ( "cookie-parser" ) ;
7+ const morgan = require ( "morgan" ) ;
8+ const cors = require ( "cors" ) ;
9+ const http = require ( "http" ) ;
10+ const graphqlHTTP = require ( "express-graphql" ) ;
11+ const graphQlSchema = require ( "./graphql/schema/index" ) ;
12+ const graphQlResolvers = require ( "./graphql/resolvers/index" ) ;
13+ const Topic = require ( "./models/topic" ) ;
14+ const User = require ( "./models/user" ) ;
15+ const Message = require ( "./models/message" ) ;
1716require ( "./config/mongoose" ) ;
18- var app = express ( ) ;
1917
20- var server = http . createServer ( app ) ;
21- var io = require ( "socket.io" ) ( server ) ;
18+ const app = express ( ) ;
19+ const server = http . createServer ( app ) ;
20+ const io = require ( "socket.io" ) ( server ) ;
2221
23-
24- app . use ( ( req , res , next ) => {
25- res . setHeader ( "Access-Control-Allow-Origin" , "*" ) ;
26- res . setHeader ( "Access-Control-Allow-Methods" , "POST,GET,OPTIONS" ) ;
27- res . setHeader ( "Access-Control-Allow-Headers" , "Content-Type, Authorization" ) ;
28- if ( req . method === "OPTIONS" ) {
29- res . sendStatus ( 200 ) ;
30- }
31- next ( ) ;
32- } ) ;
33-
34- app . set ( "views" , path . join ( __dirname , "views" ) ) ;
35- app . set ( "view engine" , "pug" ) ;
36-
37- app . use ( logger ( "dev" ) ) ;
22+ app . use ( cors ( ) ) ;
23+ app . use ( morgan ( "dev" ) ) ;
3824app . use ( express . json ( ) ) ;
3925app . use ( express . urlencoded ( { extended : false } ) ) ;
4026app . use ( cookieParser ( ) ) ;
4127app . use ( bodyParser . json ( ) ) ;
4228app . use ( express . static ( path . join ( __dirname , "public" ) ) ) ;
43-
4429app . use ( isAuth ) ;
45- app . use ( "/" , indexRouter ) ;
46- app . use ( "/users" , usersRouter ) ;
4730
4831io . sockets . on ( "connection" , function ( socket , client ) {
49- console . log ( "client connected!" )
50- socket . on ( ' room' , function ( room ) {
32+ console . log ( "client connected!" ) ;
33+ socket . on ( " room" , function ( room ) {
5134 socket . join ( room ) ;
52- console . log ( `Someone joined the room: ${ room } ` )
53- } )
35+ console . log ( `Someone joined the room: ${ room } ` ) ;
36+ } ) ;
5437 socket . on ( "newMessage" , async ( data ) => {
5538 try {
56- console . log ( data ) ;
57- Topic . findById ( data . topicId , async function ( err , Topic ) {
58- if ( err ) {
59- throw new Error ( err ) ;
39+ console . log ( Topic ) ;
40+ await Topic . findById ( data . topicId , async function ( err , Topic ) {
41+ if ( err ) {
42+ throw new Error ( err ) ;
43+ }
44+ let user = await User . findById ( data . userId , function ( err , user ) {
45+ if ( err ) {
46+ throw new Error ( err ) ;
6047 }
61- let user = await User . findById ( data . userId , function ( err , user ) {
62- if ( err ) {
63- throw new Error ( err )
64- }
65- return user . username ;
66- } )
67- console . log ( user . username ) ;
68- let newChat = {
69- username : user . username ,
70- replyTo : data . replyTo ,
71- description : data . description ,
72- userId : user . _id ,
73- }
74- Topic . chats . push ( newChat )
75- await Topic . save ( ) ;
76- io . to ( data . topicId ) . emit ( 'newChat' , Topic . chats . pop ( ) )
77- } )
78-
79- } catch {
80- console . log ( 'Error' )
48+ return user . username ;
49+ } ) ;
50+ let message = new Message ( {
51+ userId : user . _id ,
52+ replyTo : data . replyTo ,
53+ description : data . description ,
54+ likes : data . likes ,
55+ } ) ;
56+ await message . save ( ) ;
57+ console . log ( Topic ) ;
58+ Topic . chats . push ( message ) ;
59+ await Topic . save ( ) ;
60+ io . to ( data . topicId ) . emit ( "message" , Topic . chats . pop ( ) ) ;
61+ } ) ;
62+ } catch {
63+ console . log ( err ) ;
8164 }
82- } )
65+ } ) ;
8366} ) ;
8467
8568app . use (
@@ -103,4 +86,4 @@ app.use(function (err, req, res, next) {
10386 res . render ( "error" ) ;
10487} ) ;
10588
106- module . exports = { app :app , server :server } ;
89+ module . exports = { app : app , server : server } ;
0 commit comments