SharedVaultsController.ts 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. import { Request, Response } from 'express'
  2. import { inject } from 'inversify'
  3. import { BaseHttpController, controller, httpDelete, httpGet, httpPost } from 'inversify-express-utils'
  4. import { TYPES } from '../../Bootstrap/Types'
  5. import { ServiceProxyInterface } from '../../Service/Http/ServiceProxyInterface'
  6. import { EndpointResolverInterface } from '../../Service/Resolver/EndpointResolverInterface'
  7. @controller('/v1/shared-vaults', TYPES.ApiGateway_RequiredCrossServiceTokenMiddleware)
  8. export class SharedVaultsController extends BaseHttpController {
  9. constructor(
  10. @inject(TYPES.ApiGateway_ServiceProxy) private httpService: ServiceProxyInterface,
  11. @inject(TYPES.ApiGateway_EndpointResolver) private endpointResolver: EndpointResolverInterface,
  12. ) {
  13. super()
  14. }
  15. @httpGet('/')
  16. async getSharedVaults(request: Request, response: Response): Promise<void> {
  17. await this.httpService.callSyncingServer(
  18. request,
  19. response,
  20. this.endpointResolver.resolveEndpointOrMethodIdentifier('GET', 'shared-vaults/'),
  21. request.body,
  22. )
  23. }
  24. @httpPost('/')
  25. async createSharedVault(request: Request, response: Response): Promise<void> {
  26. await this.httpService.callSyncingServer(
  27. request,
  28. response,
  29. this.endpointResolver.resolveEndpointOrMethodIdentifier('POST', 'shared-vaults/'),
  30. request.body,
  31. )
  32. }
  33. @httpDelete('/:sharedVaultUuid')
  34. async deleteSharedVault(request: Request, response: Response): Promise<void> {
  35. await this.httpService.callSyncingServer(
  36. request,
  37. response,
  38. this.endpointResolver.resolveEndpointOrMethodIdentifier(
  39. 'DELETE',
  40. 'shared-vaults/:sharedVaultUuid',
  41. request.params.sharedVaultUuid,
  42. ),
  43. request.body,
  44. )
  45. }
  46. @httpPost('/:sharedVaultUuid/valet-tokens')
  47. async createValetTokenForSharedVaultFile(request: Request, response: Response): Promise<void> {
  48. await this.httpService.callSyncingServer(
  49. request,
  50. response,
  51. this.endpointResolver.resolveEndpointOrMethodIdentifier(
  52. 'POST',
  53. 'shared-vaults/:sharedVaultUuid/valet-tokens',
  54. request.params.sharedVaultUuid,
  55. ),
  56. request.body,
  57. )
  58. }
  59. }