A social knowledge tool for researchers built on ATProto
1import { Controller } from '../../../../../shared/infrastructure/http/Controller';
2import { Request, Response } from 'express';
3import { RefreshAccessTokenUseCase } from '../../../application/use-cases/RefreshAccessTokenUseCase';
4
5export class RefreshAccessTokenController extends Controller {
6 constructor(private refreshAccessTokenUseCase: RefreshAccessTokenUseCase) {
7 super();
8 }
9
10 async executeImpl(req: Request, res: Response): Promise<any> {
11 try {
12 const { refreshToken } = req.body;
13
14 if (!refreshToken) {
15 return this.badRequest(res, 'Refresh token is required');
16 }
17
18 const result = await this.refreshAccessTokenUseCase.execute({
19 refreshToken,
20 });
21
22 if (result.isErr()) {
23 return this.fail(res, result.error);
24 }
25
26 return this.ok(res, result.value);
27 } catch (error: any) {
28 return this.fail(res, error);
29 }
30 }
31}