AnnotatedUsersController.ts 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. import { Request, Response } from 'express'
  2. import { inject } from 'inversify'
  3. import {
  4. controller,
  5. httpDelete,
  6. httpGet,
  7. httpPatch,
  8. httpPut,
  9. // eslint-disable-next-line @typescript-eslint/no-unused-vars
  10. results,
  11. } from 'inversify-express-utils'
  12. import TYPES from '../../Bootstrap/Types'
  13. import { DeleteAccount } from '../../Domain/UseCase/DeleteAccount/DeleteAccount'
  14. import { GetUserKeyParams } from '../../Domain/UseCase/GetUserKeyParams/GetUserKeyParams'
  15. import { UpdateUser } from '../../Domain/UseCase/UpdateUser'
  16. import { GetUserSubscription } from '../../Domain/UseCase/GetUserSubscription/GetUserSubscription'
  17. import { ClearLoginAttempts } from '../../Domain/UseCase/ClearLoginAttempts'
  18. import { IncreaseLoginAttempts } from '../../Domain/UseCase/IncreaseLoginAttempts'
  19. import { ChangeCredentials } from '../../Domain/UseCase/ChangeCredentials/ChangeCredentials'
  20. import { BaseUsersController } from './Base/BaseUsersController'
  21. @controller('/users')
  22. export class AnnotatedUsersController extends BaseUsersController {
  23. constructor(
  24. @inject(TYPES.Auth_UpdateUser) override updateUser: UpdateUser,
  25. @inject(TYPES.Auth_GetUserKeyParams) override getUserKeyParams: GetUserKeyParams,
  26. @inject(TYPES.Auth_DeleteAccount) override doDeleteAccount: DeleteAccount,
  27. @inject(TYPES.Auth_GetUserSubscription) override doGetUserSubscription: GetUserSubscription,
  28. @inject(TYPES.Auth_ClearLoginAttempts) override clearLoginAttempts: ClearLoginAttempts,
  29. @inject(TYPES.Auth_IncreaseLoginAttempts) override increaseLoginAttempts: IncreaseLoginAttempts,
  30. @inject(TYPES.Auth_ChangeCredentials) override changeCredentialsUseCase: ChangeCredentials,
  31. ) {
  32. super(
  33. updateUser,
  34. getUserKeyParams,
  35. doDeleteAccount,
  36. doGetUserSubscription,
  37. clearLoginAttempts,
  38. increaseLoginAttempts,
  39. changeCredentialsUseCase,
  40. )
  41. }
  42. @httpPatch('/:userId', TYPES.Auth_RequiredCrossServiceTokenMiddleware)
  43. override async update(request: Request, response: Response): Promise<results.JsonResult> {
  44. return super.update(request, response)
  45. }
  46. @httpGet('/params')
  47. override async keyParams(request: Request): Promise<results.JsonResult> {
  48. return super.keyParams(request)
  49. }
  50. @httpDelete('/:userUuid', TYPES.Auth_RequiredCrossServiceTokenMiddleware)
  51. override async deleteAccount(request: Request, response: Response): Promise<results.JsonResult> {
  52. return super.deleteAccount(request, response)
  53. }
  54. @httpGet('/:userUuid/subscription', TYPES.Auth_RequiredCrossServiceTokenMiddleware)
  55. override async getSubscription(request: Request, response: Response): Promise<results.JsonResult> {
  56. return super.getSubscription(request, response)
  57. }
  58. @httpPut('/:userId/attributes/credentials', TYPES.Auth_RequiredCrossServiceTokenMiddleware)
  59. override async changeCredentials(request: Request, response: Response): Promise<results.JsonResult> {
  60. return super.changeCredentials(request, response)
  61. }
  62. }