OfflineController.ts 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. import { Request, Response } from 'express'
  2. import { inject } from 'inversify'
  3. import { BaseHttpController, controller, 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/offline')
  8. export class OfflineController extends BaseHttpController {
  9. constructor(
  10. @inject(TYPES.ServiceProxy) private httpService: ServiceProxyInterface,
  11. @inject(TYPES.EndpointResolver) private endpointResolver: EndpointResolverInterface,
  12. ) {
  13. super()
  14. }
  15. @httpGet('/features')
  16. async getOfflineFeatures(request: Request, response: Response): Promise<void> {
  17. await this.httpService.callAuthServer(
  18. request,
  19. response,
  20. this.endpointResolver.resolveEndpointOrMethodIdentifier('GET', 'offline/features'),
  21. request.body,
  22. )
  23. }
  24. @httpPost('/subscription-tokens')
  25. async createOfflineSubscriptionToken(request: Request, response: Response): Promise<void> {
  26. await this.httpService.callAuthServer(
  27. request,
  28. response,
  29. this.endpointResolver.resolveEndpointOrMethodIdentifier('POST', 'offline/subscription-tokens'),
  30. request.body,
  31. )
  32. }
  33. @httpPost('/payments/stripe-setup-intent')
  34. async createStripeSetupIntent(request: Request, response: Response): Promise<void> {
  35. await this.httpService.callPaymentsServer(
  36. request,
  37. response,
  38. 'api/pro_users/stripe-setup-intent/offline',
  39. request.body,
  40. )
  41. }
  42. }