get public user working
This commit is contained in:
@@ -1,7 +1,9 @@
|
||||
import { JwtClaims, authCheck } from '../middleware/auth';
|
||||
import express, { Application, Request, Response } from 'express';
|
||||
import express, { Application, NextFunction, Request, Response } from 'express';
|
||||
|
||||
import NirvanaResponse from '../../core/responses/nirvanaResponse';
|
||||
import User from '@nirvana/core/models/user.model';
|
||||
import UserDetailsResponse from '@nirvana/core/responses/userDetails.response';
|
||||
import UserSearchResponse from '../../core/responses/userSearch.response';
|
||||
import { UserService } from '../services/user.service';
|
||||
|
||||
@@ -13,6 +15,9 @@ export default function getSearchRoutes() {
|
||||
// get user details based on id token
|
||||
router.get('/users', authCheck, handleUserSearch);
|
||||
|
||||
// get user public information by id
|
||||
router.get('/user/:userId', authCheck, getPublicUser);
|
||||
|
||||
return router;
|
||||
}
|
||||
|
||||
@@ -40,3 +45,17 @@ async function handleUserSearch(req: Request, res: Response) {
|
||||
res.status(500).send(`something went wrong`);
|
||||
}
|
||||
}
|
||||
|
||||
async function getPublicUser(req: Request, res: Response, next: NextFunction) {
|
||||
const { userId } = req.params;
|
||||
|
||||
const user = await UserService.getUserById(userId as string);
|
||||
|
||||
if (user) {
|
||||
const responseObj = new NirvanaResponse(new UserDetailsResponse(user), undefined, 'got user');
|
||||
return res.status(200).json(responseObj);
|
||||
}
|
||||
|
||||
res.status(404);
|
||||
next(Error('No user found'));
|
||||
}
|
||||
|
||||
@@ -23,9 +23,6 @@ export default function getUserRoutes() {
|
||||
|
||||
router.get('/login', login);
|
||||
|
||||
// get user public information by id
|
||||
router.get('/:userId', authCheck, getPublicUser);
|
||||
|
||||
router.get('/authcheck', authCheck, handleAuthCheck);
|
||||
|
||||
return router;
|
||||
@@ -48,19 +45,6 @@ async function getUserDetails(req: Request, res: Response, next: NextFunction) {
|
||||
next(Error('No user found'));
|
||||
}
|
||||
|
||||
async function getPublicUser(req: Request, res: Response, next: NextFunction) {
|
||||
const { userId } = req.params;
|
||||
|
||||
const user = await UserService.getUserById(userId as string);
|
||||
|
||||
if (user) {
|
||||
return res.status(200).json(new UserDetailsResponse(user));
|
||||
}
|
||||
|
||||
res.status(404);
|
||||
next(Error('No user found'));
|
||||
}
|
||||
|
||||
/** Create user if doesn't exist
|
||||
* Returns jwt token for client and user details
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user