A social knowledge tool for researchers built on ATProto
at development 1.0 kB view raw
1import { Controller } from '../../../../../shared/infrastructure/http/Controller'; 2import { Response } from 'express'; 3import { GetUrlCardViewUseCase } from '../../../application/useCases/queries/GetUrlCardViewUseCase'; 4import { AuthenticatedRequest } from '../../../../../shared/infrastructure/http/middleware/AuthMiddleware'; 5 6export class GetUrlCardViewController extends Controller { 7 constructor(private getUrlCardViewUseCase: GetUrlCardViewUseCase) { 8 super(); 9 } 10 11 async executeImpl(req: AuthenticatedRequest, res: Response): Promise<any> { 12 try { 13 const { cardId } = req.params; 14 const callerDid = req.did; 15 16 if (!cardId) { 17 return this.badRequest(res, 'Card ID is required'); 18 } 19 20 const result = await this.getUrlCardViewUseCase.execute({ 21 cardId, 22 callerDid, 23 }); 24 25 if (result.isErr()) { 26 return this.fail(res, result.error); 27 } 28 29 return this.ok(res, result.value); 30 } catch (error: any) { 31 return this.fail(res, error); 32 } 33 } 34}