feat: test bad body

This commit is contained in:
Nevo David 2024-09-16 10:45:16 +07:00
parent 66c682197d
commit c6c1c10912
2 changed files with 15 additions and 4 deletions

View File

@ -15,7 +15,7 @@ import { OpenaiService } from '@gitroom/nestjs-libraries/openai/openai.service';
import { CreateGeneratedPostsDto } from '@gitroom/nestjs-libraries/dtos/generator/create.generated.posts.dto';
import { IntegrationService } from '@gitroom/nestjs-libraries/database/prisma/integrations/integration.service';
import { makeId } from '@gitroom/nestjs-libraries/services/make.is';
import { RefreshToken } from '@gitroom/nestjs-libraries/integrations/social.abstract';
import { BadBody, RefreshToken } from '@gitroom/nestjs-libraries/integrations/social.abstract';
import { BullMqClient } from '@gitroom/nestjs-libraries/bull-mq-transport-new/client';
type PostWithConditionals = Post & {
@ -279,6 +279,10 @@ export class PostsService {
return this.postSocial(integration, posts, true);
}
if (err instanceof BadBody && process.env.EMAIL_FROM_ADDRESS === 'nevo@postiz.com') {
await this._notificationService.sendEmail('nevo@positz.com', 'Bad body', JSON.stringify(err.body));
}
throw err;
}
}

View File

@ -1,11 +1,15 @@
export class RefreshToken {}
export class BadBody {
constructor(public body: BodyInit) {
}
}
export class NotEnoughScopes {}
export abstract class SocialAbstract {
async fetch(url: string, options: RequestInit = {}) {
const request = await fetch(url, options);
console.log(request.status);
if (request.status !== 200 && request.status !== 201) {
try {
console.log(await request.json());
@ -14,15 +18,18 @@ export abstract class SocialAbstract {
console.log('skip');
}
}
if (request.status === 401 || request.status === 400) {
if (request.status === 401) {
throw new RefreshToken();
}
if (request.status === 400) {
throw new BadBody(options.body!);
}
return request;
}
checkScopes(required: string[], got: string | string[]) {
console.log(required, got);
if (Array.isArray(got)) {
if (!required.every((scope) => got.includes(scope))) {
throw new NotEnoughScopes();