InversifyExpressAdminController.ts 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. import { Request } from 'express'
  2. import { inject } from 'inversify'
  3. import {
  4. controller,
  5. httpDelete,
  6. httpGet,
  7. httpPost,
  8. // eslint-disable-next-line @typescript-eslint/no-unused-vars
  9. results,
  10. } from 'inversify-express-utils'
  11. import TYPES from '../../Bootstrap/Types'
  12. import { HomeServerAdminController } from './HomeServer/HomeServerAdminController'
  13. import { CreateOfflineSubscriptionToken } from '../../Domain/UseCase/CreateOfflineSubscriptionToken/CreateOfflineSubscriptionToken'
  14. import { CreateSubscriptionToken } from '../../Domain/UseCase/CreateSubscriptionToken/CreateSubscriptionToken'
  15. import { DeleteSetting } from '../../Domain/UseCase/DeleteSetting/DeleteSetting'
  16. import { UserRepositoryInterface } from '../../Domain/User/UserRepositoryInterface'
  17. @controller('/admin')
  18. export class InversifyExpressAdminController extends HomeServerAdminController {
  19. constructor(
  20. @inject(TYPES.Auth_DeleteSetting) override doDeleteSetting: DeleteSetting,
  21. @inject(TYPES.Auth_UserRepository) override userRepository: UserRepositoryInterface,
  22. @inject(TYPES.Auth_CreateSubscriptionToken) override createSubscriptionToken: CreateSubscriptionToken,
  23. @inject(TYPES.Auth_CreateOfflineSubscriptionToken)
  24. override createOfflineSubscriptionToken: CreateOfflineSubscriptionToken,
  25. ) {
  26. super(doDeleteSetting, userRepository, createSubscriptionToken, createOfflineSubscriptionToken)
  27. }
  28. @httpGet('/user/:email')
  29. override async getUser(request: Request): Promise<results.JsonResult> {
  30. return super.getUser(request)
  31. }
  32. @httpDelete('/users/:userUuid/mfa')
  33. override async deleteMFASetting(request: Request): Promise<results.JsonResult> {
  34. return super.deleteMFASetting(request)
  35. }
  36. @httpPost('/users/:userUuid/subscription-token')
  37. override async createToken(request: Request): Promise<results.JsonResult> {
  38. return super.createToken(request)
  39. }
  40. @httpPost('/users/:email/offline-subscription-token')
  41. override async createOfflineToken(request: Request): Promise<results.JsonResult | results.BadRequestResult> {
  42. return super.createOfflineToken(request)
  43. }
  44. @httpPost('/users/:userUuid/email-backups')
  45. override async disableEmailBackups(
  46. request: Request,
  47. ): Promise<results.BadRequestErrorMessageResult | results.OkResult> {
  48. return super.disableEmailBackups(request)
  49. }
  50. }