AnnotatedSharedVaultUsersController.ts 1.8 KB

123456789101112131415161718192021222324252627282930313233
  1. import { controller, httpDelete, httpGet, results } from 'inversify-express-utils'
  2. import { inject } from 'inversify'
  3. import { MapperInterface } from '@standardnotes/domain-core'
  4. import { Request, Response } from 'express'
  5. import { BaseSharedVaultUsersController } from './Base/BaseSharedVaultUsersController'
  6. import TYPES from '../../Bootstrap/Types'
  7. import { SharedVaultUser } from '../../Domain/SharedVault/User/SharedVaultUser'
  8. import { SharedVaultUserHttpRepresentation } from '../../Mapping/Http/SharedVaultUserHttpRepresentation'
  9. import { GetSharedVaultUsers } from '../../Domain/UseCase/SharedVaults/GetSharedVaultUsers/GetSharedVaultUsers'
  10. import { RemoveUserFromSharedVault } from '../../Domain/UseCase/SharedVaults/RemoveUserFromSharedVault/RemoveUserFromSharedVault'
  11. @controller('/shared-vaults/:sharedVaultUuid/users', TYPES.Sync_AuthMiddleware)
  12. export class AnnotatedSharedVaultUsersController extends BaseSharedVaultUsersController {
  13. constructor(
  14. @inject(TYPES.Sync_GetSharedVaultUsers) override getSharedVaultUsersUseCase: GetSharedVaultUsers,
  15. @inject(TYPES.Sync_RemoveSharedVaultUser) override removeUserFromSharedVaultUseCase: RemoveUserFromSharedVault,
  16. @inject(TYPES.Sync_SharedVaultUserHttpMapper)
  17. override sharedVaultUserHttpMapper: MapperInterface<SharedVaultUser, SharedVaultUserHttpRepresentation>,
  18. ) {
  19. super(getSharedVaultUsersUseCase, removeUserFromSharedVaultUseCase, sharedVaultUserHttpMapper)
  20. }
  21. @httpGet('/')
  22. override async getSharedVaultUsers(request: Request, response: Response): Promise<results.JsonResult> {
  23. return super.getSharedVaultUsers(request, response)
  24. }
  25. @httpDelete('/:userUuid')
  26. override async removeUserFromSharedVault(request: Request, response: Response): Promise<results.JsonResult> {
  27. return super.removeUserFromSharedVault(request, response)
  28. }
  29. }