File tree Expand file tree Collapse file tree
examples_new/microservices Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -25,7 +25,7 @@ const start = async () => {
2525 }
2626
2727 app . listen ( PORT , async ( ) => {
28- console . log ( `💥 App listening on ${ PORT } ` ) ;
28+ console . log ( `💥 Auth listening on ${ PORT } ` ) ;
2929 } ) ;
3030} ;
3131
Original file line number Diff line number Diff line change @@ -2,7 +2,7 @@ import { app } from './app';
22
33const start = ( ) => {
44 app . listen ( 3005 , ( ) => {
5- console . log ( '💥 App listening on port 3005' ) ;
5+ console . log ( '💥 Event-bus listening on port 3005' ) ;
66 } ) ;
77} ;
88
Original file line number Diff line number Diff line change @@ -22,7 +22,7 @@ const start = async () => {
2222 }
2323
2424 app . listen ( PORT , async ( ) => {
25- console . log ( `💥 App listening on ${ PORT } ` ) ;
25+ console . log ( `💥 Inventory listening on ${ PORT } ` ) ;
2626 } ) ;
2727} ;
2828
Original file line number Diff line number Diff line change @@ -22,7 +22,7 @@ const start = async () => {
2222 }
2323
2424 app . listen ( PORT , async ( ) => {
25- console . log ( `App listening on ${ PORT } ` ) ;
25+ console . log ( `Items listening on ${ PORT } ` ) ;
2626 } ) ;
2727} ;
2828
Original file line number Diff line number Diff line change @@ -21,7 +21,7 @@ const start = async () => {
2121 }
2222
2323 app . listen ( PORT , async ( ) => {
24- console . log ( `💥 App listening on ${ PORT } ` ) ;
24+ console . log ( `💥 Orders listening on ${ PORT } ` ) ;
2525 } ) ;
2626} ;
2727
Original file line number Diff line number Diff line change 1+ import mongoose from 'mongoose' ;
2+
3+ //define attrs
4+ interface UserAttrs {
5+ username : string ;
6+ id : string ;
7+ }
8+ // add a method 'build' to the UserModel
9+ // mongoose has built-in Model class that takes 'UserDoc'
10+ interface UserModel extends mongoose . Model < UserDoc > {
11+ build ( attrs : UserAttrs ) : UserDoc ;
12+ }
13+ //create user data in the database in this shape
14+ interface UserDoc extends mongoose . Document {
15+ username : string ;
16+ }
17+ //create the Schema in mongoose with defined requirements
18+ const userSchema = new mongoose . Schema (
19+ {
20+ username : {
21+ type : String ,
22+ required : true ,
23+ unique : true ,
24+ } ,
25+ } ,
26+ {
27+ //anytime we create Json formatted data, transform the user document as following
28+ toJSON : {
29+ transform ( doc , ret ) {
30+ ret . id = ret . _id ;
31+ delete ret . _id ;
32+ delete ret . __v ;
33+ } ,
34+ } ,
35+ }
36+ ) ;
37+
38+ userSchema . statics . build = ( attrs : UserAttrs ) => {
39+ //returning user document with (attrs) passed in
40+ return new User ( {
41+ _id : attrs . id ,
42+ username : attrs . username ,
43+ } ) ;
44+ } ;
45+
46+ const User = mongoose . model < UserDoc , UserModel > ( 'User' , userSchema ) ;
47+
48+ export { User } ;
Original file line number Diff line number Diff line change 11import { EventTypes , Events } from '@chronosrx/common' ;
22import express from 'express' ;
3- import { Order } from '../models/Order' ;
4-
3+ import { User } from '../models/user' ;
54
65const router = express . Router ( ) ;
76
87router . post ( '/' , async ( req , res ) => {
98 const event : Events = req . body . event ;
109 console . log ( event ) ;
11- // switch (event.type) {
12- // case EventTypes.USER_CREATED:
13- // // console.log(event);
14- // const newUser = User.build(event.payload);
15- // await newUser.save();
16- // break;
17- // default:
18- // res.send({});
19- // }
20- res . send ( { message : 'Event received' } ) ;
10+ switch ( event . type ) {
11+ case EventTypes . USER_CREATED :
12+ // console.log(event);
13+ const newUser = User . build ( event . payload ) ;
14+ await newUser . save ( ) ;
15+ break ;
16+ }
17+ return res . send ( { message : 'Event received' } ) ;
2118} ) ;
2219
2320// router.get('/events');
2421
25-
2622export default router ;
You can’t perform that action at this time.
0 commit comments