import {Where, repository} from '@loopback/repository'; import {post, param, get, patch, del, requestBody} from '@loopback/rest'; import {User} from '../models'; import {UserRepository} from '../repositories'; export class UserController { constructor( @repository(UserRepository) public userRepository: UserRepository, ) {} @post('/users/signup') async create(@requestBody() obj: User): Promise { let userget = await this.find(); let count = 0; userget.map(user => { if (user.email === obj.email) count++; }); let confermation = { statusmessage: '', statuscode: '', }; if (count === 0) { await this.userRepository.create(obj); return (confermation = { statusmessage: 'succefully user created', statuscode: '200', }); } return (confermation = { statusmessage: 'failed user created', statuscode: '400', }); } @post('/users/login') async login(@requestBody() obj: User): Promise { let userget = await this.find(); let count = 0; let email = ''; let password = ''; userget.map(user => { if (user.email === obj.email) { email = user.email; password = user.password; count++; } }); let confermation = { statusmessage: '', statuscode: '', }; if (count > 0) { if (email === obj.email && password === obj.password) return (confermation = { statusmessage: 'succefully user loged in', statuscode: '200', }); return (confermation = { statusmessage: 'invalid loged credentials', statuscode: '400', }); } return (confermation = { statusmessage: 'failed user not exist', statuscode: '400', }); } @get('/users/count') async count(@param.query.string('where') where?: Where): Promise { return await this.userRepository.count(where); } @get('/users') // async find(@param.query.string('filter') filter?: Filter) async find(): Promise { return await this.userRepository.find(); } @patch('/users') async updateAll( @requestBody() obj: User, @param.query.string('where') where?: Where, ): Promise { return await this.userRepository.updateAll(obj, where); } @get('/users/{id}') async findById(@param.path.string('id') id: string): Promise { return await this.userRepository.findById(id); } @patch('/users/{id}') async updateById( @param.path.string('id') id: string, @requestBody() obj: User, ): Promise { return await this.userRepository.updateById(id, obj); } @del('/users/{id}') async deleteById(@param.path.string('id') id: string): Promise { return await this.userRepository.deleteById(id); } }