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