AnnotatedUsersController.ts 3.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  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. import { GetTransitionStatus } from '../../Domain/UseCase/GetTransitionStatus/GetTransitionStatus'
  22. @controller('/users')
  23. export class AnnotatedUsersController extends BaseUsersController {
  24. constructor(
  25. @inject(TYPES.Auth_UpdateUser) override updateUser: UpdateUser,
  26. @inject(TYPES.Auth_GetUserKeyParams) override getUserKeyParams: GetUserKeyParams,
  27. @inject(TYPES.Auth_DeleteAccount) override doDeleteAccount: DeleteAccount,
  28. @inject(TYPES.Auth_GetUserSubscription) override doGetUserSubscription: GetUserSubscription,
  29. @inject(TYPES.Auth_ClearLoginAttempts) override clearLoginAttempts: ClearLoginAttempts,
  30. @inject(TYPES.Auth_IncreaseLoginAttempts) override increaseLoginAttempts: IncreaseLoginAttempts,
  31. @inject(TYPES.Auth_ChangeCredentials) override changeCredentialsUseCase: ChangeCredentials,
  32. @inject(TYPES.Auth_GetTransitionStatus) override getTransitionStatusUseCase: GetTransitionStatus,
  33. ) {
  34. super(
  35. updateUser,
  36. getUserKeyParams,
  37. doDeleteAccount,
  38. doGetUserSubscription,
  39. clearLoginAttempts,
  40. increaseLoginAttempts,
  41. changeCredentialsUseCase,
  42. getTransitionStatusUseCase,
  43. )
  44. }
  45. @httpPatch('/:userId', TYPES.Auth_RequiredCrossServiceTokenMiddleware)
  46. override async update(request: Request, response: Response): Promise<results.JsonResult> {
  47. return super.update(request, response)
  48. }
  49. @httpGet('/params')
  50. override async keyParams(request: Request): Promise<results.JsonResult> {
  51. return super.keyParams(request)
  52. }
  53. @httpGet('/transition-status', TYPES.Auth_RequiredCrossServiceTokenMiddleware)
  54. override async transitionStatus(request: Request, response: Response): Promise<results.JsonResult> {
  55. return super.transitionStatus(request, response)
  56. }
  57. @httpDelete('/:userUuid', TYPES.Auth_RequiredCrossServiceTokenMiddleware)
  58. override async deleteAccount(request: Request, response: Response): Promise<results.JsonResult> {
  59. return super.deleteAccount(request, response)
  60. }
  61. @httpGet('/:userUuid/subscription', TYPES.Auth_RequiredCrossServiceTokenMiddleware)
  62. override async getSubscription(request: Request, response: Response): Promise<results.JsonResult> {
  63. return super.getSubscription(request, response)
  64. }
  65. @httpPut('/:userId/attributes/credentials', TYPES.Auth_RequiredCrossServiceTokenMiddleware)
  66. override async changeCredentials(request: Request, response: Response): Promise<results.JsonResult> {
  67. return super.changeCredentials(request, response)
  68. }
  69. }