🚀 release v3.0.0

This commit is contained in:
Amruth Pillai
2022-03-06 22:48:29 +01:00
parent 00505a9e5d
commit 9c1380f401
373 changed files with 12050 additions and 15783 deletions

View File

@ -0,0 +1,17 @@
import { CacheInterceptor, Controller, Get, UseGuards, UseInterceptors } from '@nestjs/common';
import { JwtAuthGuard } from '@/auth/guards/jwt.guard';
import { FontsService } from './fonts.service';
@Controller('fonts')
@UseInterceptors(CacheInterceptor)
export class FontsController {
constructor(private fontsService: FontsService) {}
@UseGuards(JwtAuthGuard)
@Get()
getAll() {
return this.fontsService.getAll();
}
}

View File

@ -0,0 +1,16 @@
import { HttpModule } from '@nestjs/axios';
import { CacheModule, Module } from '@nestjs/common';
import { ConfigModule } from '@nestjs/config';
import { FontsController } from './fonts.controller';
import { FontsService } from './fonts.service';
// Every week
const cacheTTL = 60 * 60 * 24 * 7;
@Module({
imports: [ConfigModule, HttpModule, CacheModule.register({ ttl: cacheTTL })],
controllers: [FontsController],
providers: [FontsService],
})
export class FontsModule {}

View File

@ -0,0 +1,21 @@
import { HttpService } from '@nestjs/axios';
import { Injectable } from '@nestjs/common';
import { ConfigService } from '@nestjs/config';
import { Font } from '@reactive-resume/schema';
import { get } from 'lodash';
import { firstValueFrom } from 'rxjs';
@Injectable()
export class FontsService {
constructor(private configService: ConfigService, private httpService: HttpService) {}
async getAll(): Promise<Font[]> {
const apiKey = this.configService.get<string>('google.apiKey');
const url = 'https://www.googleapis.com/webfonts/v1/webfonts?key=' + apiKey;
const response = await firstValueFrom(this.httpService.get(url));
const data = get(response.data, 'items', []);
return data;
}
}