A social knowledge tool for researchers built on ATProto
at development 1.3 kB view raw
1import { Controller } from '../../../../../shared/infrastructure/http/Controller'; 2import { Response } from 'express'; 3import { AuthenticatedRequest } from '../../../../../shared/infrastructure/http/middleware/AuthMiddleware'; 4import { GenerateExtensionTokensUseCase } from '../../../application/use-cases/GenerateExtensionTokensUseCase'; 5import { configService } from 'src/shared/infrastructure/config'; 6 7export class GenerateExtensionTokensController extends Controller { 8 constructor( 9 private generateExtensionTokensUseCase: GenerateExtensionTokensUseCase, 10 ) { 11 super(); 12 } 13 14 async executeImpl(req: AuthenticatedRequest, res: Response): Promise<any> { 15 try { 16 const userDid = req.did; 17 18 if (!userDid) { 19 return this.unauthorized(res, 'User not authenticated'); 20 } 21 22 const result = await this.generateExtensionTokensUseCase.execute({ 23 userDid, 24 }); 25 26 if (result.isErr()) { 27 const errorMessage = 28 result.error instanceof Error 29 ? result.error.message 30 : 'Failed to generate extension tokens'; 31 return this.fail(res, errorMessage); 32 } 33 34 return this.ok(res, result.value); 35 } catch (error: any) { 36 return this.fail(res, error.message || 'Unknown error'); 37 } 38 } 39}