UNPKG

homebridge-camera-ui

Version:
85 lines (79 loc) 2.25 kB
'use-strict'; const AuthController = require('./auth.controller'); const AuthValidationMiddleware = require('../../middlewares/auth.validation.middleware'); const UserValidationMiddleware = require('../../middlewares/user.validation.middleware'); /** * @swagger * tags: * name: Authentication */ exports.routesConfig = (app) => { /** * @swagger * /api/auth/login: * post: * tags: [Authentication] * summary: Logs in a user * requestBody: * required: true * content: * application/json: * schema: * type: object * properties: * username: * type: string * password: * type: string * responses: * 201: * description: User found and logged in successfully * 400: * description: Bad request * 401: * description: Unauthorized (Bad username/password or token expired/invalid) * 403: * description: Forbidden (User not found) * 422: * description: Username and/or password not given * 500: * description: Internal server error */ app.post('/api/auth/login', [ UserValidationMiddleware.hasAuthValidFields, UserValidationMiddleware.isPasswordAndUserMatch, AuthController.login, ]); /** * @swagger * /api/auth/logout: * post: * tags: [Authentication] * security: * - bearerAuth: [] * summary: Logs out a user * responses: * 200: * description: Logged out successfully * 500: * description: Internal server error */ app.post('/api/auth/logout', [AuthController.logout]); /** * @swagger * /api/auth/check: * get: * tags: [Authentication] * security: * - bearerAuth: [] * summary: Checks user token status * responses: * 200: * description: Status OK * 401: * description: Unauthorized * 500: * description: Internal server error */ app.get('/api/auth/check', [AuthValidationMiddleware.validJWTNeeded, AuthController.check]); };