Update to RC

This commit is contained in:
kamil.mysliwiec 2017-03-25 21:04:47 +01:00
parent f52644426d
commit 3b40dfc28d
8 changed files with 1 additions and 155 deletions

View File

@ -1,7 +1,6 @@
import { Module } from 'nest.js'; import { Module } from 'nest.js';
import { UsersModule } from './users/users.module';
@Module({ @Module({
modules: [ UsersModule ] modules: []
}) })
export class ApplicationModule {} export class ApplicationModule {}

View File

@ -1,24 +0,0 @@
import { UsersService } from "./users.service";
import { NestMiddleware, HttpException, Middleware } from 'nest.js';
@Middleware()
export class AuthMiddleware implements NestMiddleware {
constructor(private usersService: UsersService) {}
resolve() {
return (req, res, next) => {
const userName = req.headers["x-access-token"];
const users = this.usersService.getUsers();
const user = users.find((user) => user.name === userName);
if (!user) {
throw new HttpException('User not found.', 401);
}
req.user = user;
next();
}
}
}

View File

@ -1,20 +0,0 @@
import { Subject } from 'rxjs/Subject';
import { WebSocketGateway, WebSocketServer, SubscribeMessage } from 'nest.js/websockets';
@WebSocketGateway({ port: 2000 })
export class ChatGateway {
private msg$ = new Subject<any>();
@WebSocketServer()
server;
get msgStream() {
return this.msg$.asObservable();
}
@SubscribeMessage({ value: 'message' })
onMessage(client, data) {
this.msg$.next({ client, data });
}
}

View File

@ -1,16 +0,0 @@
import { ChatGateway } from './chat.gateway';
import { Component } from 'nest.js';
@Component()
export class ChatService {
constructor(private chatGateway: ChatGateway) {
const stream$ = this.chatGateway.msgStream;
stream$.subscribe(this.storeMessage.bind(this));
}
storeMessage(data) {
// store data
}
}

View File

@ -1,11 +0,0 @@
import { Component } from 'nest.js';
@Component()
export class NotificationService {
storeNotification(data) {
const notification = this.mapDataToNotification(data);
// store notification
}
private mapDataToNotification(msg) {}
}

View File

@ -1,28 +0,0 @@
import { UsersService } from "./users.service";
import { Controller, RequestMapping, RequestMethod } from 'nest.js';
@Controller({ path: 'users' })
export class UsersController {
constructor(private usersService: UsersService) {}
@RequestMapping()
async getAllUsers(req, res) {
const users = await this.usersService.getAllUsers();
res.status(200).json(users);
}
@RequestMapping({ path: '/:id' })
async getUser(req, res) {
const user = await this.usersService.getUser(req.params.id);
res.status(200).json(user);
}
@RequestMapping({ method: RequestMethod.POST })
async addUser(req, res) {
const msg = await this.usersService.getUser(req.body.user);
res.status(201).json(msg);
}
}

View File

@ -1,21 +0,0 @@
import { Module, MiddlewareBuilder } from 'nest.js';
import { UsersController } from './users.controller';
import { UsersService } from './users.service';
import { AuthMiddleware } from './auth.middleware';
import { ChatGateway } from './chat.gateway';
import { ChatService } from './chat.service';
import { NotificationService } from './notification.service';
@Module({
controllers: [ UsersController ],
components: [ UsersService, ChatGateway, ChatService, NotificationService ],
exports: [ UsersService ],
})
export class UsersModule {
configure(builder: MiddlewareBuilder) {
builder.use({
middlewares: [ AuthMiddleware ],
forRoutes: [ UsersController ],
})
}
}

View File

@ -1,33 +0,0 @@
import { Component, HttpException } from 'nest.js';
@Component()
export class UsersService {
private users = [
{ id: 1, name: 'John Doe' },
{ id: 2, name: 'Alice Caeiro' },
{ id: 3, name: 'Who Knows' },
];
getUsers() {
return this.users;
}
getAllUsers() {
return Promise.resolve(this.users);
}
getUser(id: string) {
const user = this.users.find((user) => user.id === +id);
if (!user) {
throw new HttpException('User not found', 404);
}
return Promise.resolve(user);
}
addUser(user) {
this.users.push(user);
return Promise.resolve();
}
}