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