/* * Copyright (c) 2022. * Author Peter Placzek (tada5hi) * For the full copyright and license information, * view the LICENSE file that was distributed with this source code. */ import { DBody, DController, DDelete, DGet, DPath, DPost, DRequest, DResponse, DTags, } from '@routup/decorators'; import { Request, Response } from 'routup'; import type { IdentityProviderRole } from '@authup/common'; import { createOauth2ProviderRoleRouteHandler, deleteOauth2ProvideRoleRouteHandler, getManyIdentityProviderRoleRouteHandler, getOneIdentityProviderRoleRouteHandler, updateOauth2ProviderRoleRouteHandler, } from './handlers'; import { ForceLoggedInMiddleware } from '../../middleware'; @DTags('identity-provider') @DController('/identity-provider-roles') export class OAuth2ProviderRoleController { @DGet('', []) async getProviders( @DRequest() req: Request, @DResponse() res: Response, ): Promise { return getManyIdentityProviderRoleRouteHandler(req, res); } @DGet('/:id', []) async getProvider( @DPath('id') id: string, @DRequest() req: Request, @DResponse() res: Response, ): Promise { return getOneIdentityProviderRoleRouteHandler(req, res); } @DPost('/:id', [ForceLoggedInMiddleware]) async editProvider( @DPath('id') id: string, @DBody() user: NonNullable, @DRequest() req: Request, @DResponse() res: Response, ): Promise { return updateOauth2ProviderRoleRouteHandler(req, res); } @DDelete('/:id', [ForceLoggedInMiddleware]) async dropProvider( @DPath('id') id: string, @DRequest() req: Request, @DResponse() res: Response, ): Promise { return deleteOauth2ProvideRoleRouteHandler(req, res); } @DPost('', [ForceLoggedInMiddleware]) async addProvider( @DBody() user: NonNullable, @DRequest() req: Request, @DResponse() res: Response, ): Promise { return createOauth2ProviderRoleRouteHandler(req, res); } }