mirror of
https://github.com/HamzaSha1/zod-backend.git
synced 2026-03-10 18:31:46 +00:00
56 lines
2.0 KiB
TypeScript
56 lines
2.0 KiB
TypeScript
import { BadRequestException, Controller, Get, Req, UseGuards } from '@nestjs/common';
|
|
import { ApiBearerAuth, ApiTags } from '@nestjs/swagger';
|
|
import { Request } from 'express';
|
|
import { AccessTokenGuard } from '~/common/guards';
|
|
import { ApiDataArrayResponse, ApiLangRequestHeader } from '~/core/decorators';
|
|
import { ResponseFactory } from '~/core/utils';
|
|
import { DocumentMetaResponseDto } from '~/document/dtos/response';
|
|
import { HelpSupportFaqResponseDto } from '../dtos/response';
|
|
import { LookupLanguage } from '../enums';
|
|
import { LookupService } from '../services';
|
|
|
|
@Controller('lookup')
|
|
@ApiTags('Lookups')
|
|
@ApiBearerAuth()
|
|
export class LookupController {
|
|
constructor(private readonly lookupService: LookupService) {}
|
|
|
|
@UseGuards(AccessTokenGuard)
|
|
@Get('default-avatars')
|
|
@ApiDataArrayResponse(DocumentMetaResponseDto)
|
|
async findDefaultAvatars() {
|
|
const avatars = await this.lookupService.findDefaultAvatar();
|
|
|
|
return ResponseFactory.dataArray(avatars.map((avatar) => new DocumentMetaResponseDto(avatar)));
|
|
}
|
|
|
|
@UseGuards(AccessTokenGuard)
|
|
@Get('default-task-logos')
|
|
@ApiDataArrayResponse(DocumentMetaResponseDto)
|
|
async findDefaultTaskLogos() {
|
|
const avatars = await this.lookupService.findDefaultTasksLogo();
|
|
|
|
return ResponseFactory.dataArray(avatars.map((avatar) => new DocumentMetaResponseDto(avatar)));
|
|
}
|
|
|
|
@UseGuards(AccessTokenGuard)
|
|
@Get('help-support-faqs')
|
|
@ApiDataArrayResponse(HelpSupportFaqResponseDto)
|
|
@ApiLangRequestHeader()
|
|
getHelpSupportFaqs(@Req() request: Request) {
|
|
const header = request.headers['accept-language'];
|
|
const lang = Array.isArray(header) ? header[0] : header;
|
|
const normalized = (lang || '').trim().toLowerCase();
|
|
|
|
if (normalized && normalized !== LookupLanguage.EN && normalized !== LookupLanguage.AR) {
|
|
throw new BadRequestException('Accept-Language must be "en" or "ar".');
|
|
}
|
|
|
|
const faqs = this.lookupService.getHelpSupportFaqs(
|
|
normalized === LookupLanguage.AR ? LookupLanguage.AR : LookupLanguage.EN,
|
|
);
|
|
|
|
return ResponseFactory.dataArray(faqs);
|
|
}
|
|
}
|