Skip to content

Commit 474d42b

Browse files
feat: Added support for application/xml format (#904)
2 parents 9920212 + 4a726be commit 474d42b

File tree

4 files changed

+22
-9
lines changed

4 files changed

+22
-9
lines changed

apps/api/src/app/import-jobs/usecase/create-userjob/create-userjob.usecase.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { BadRequestException, Injectable } from '@nestjs/common';
2-
import { FileMimeTypesEnum } from '@impler/shared';
2+
import { isValidXMLMimeType } from '@shared/helpers/common.helper';
33
import { APIMessages } from '@shared/constants';
44
import { UserJobEntity, UserJobRepository } from '@impler/dal';
55
import { RSSService } from '@shared/services';
@@ -20,7 +20,7 @@ export class CreateUserJob {
2020
authHeaderValue,
2121
}: CreateUserJobCommand): Promise<UserJobEntity> {
2222
const mimeType = await this.rssService.getMimeType(url);
23-
if (mimeType === FileMimeTypesEnum.XML || mimeType === FileMimeTypesEnum.TEXTXML) {
23+
if (isValidXMLMimeType(mimeType)) {
2424
const { rssKeyHeading } = await this.rssService.parseRssFeed(url);
2525
let formattedExtra = extra || '{}';
2626
try {

apps/api/src/app/shared/helpers/common.helper.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,3 +83,15 @@ export function captureException(error: any) {
8383
Sentry.captureException(error);
8484
} else console.error(error);
8585
}
86+
87+
export function isValidXMLMimeType(mimeType: string): boolean {
88+
if (
89+
mimeType === FileMimeTypesEnum.XML ||
90+
mimeType === FileMimeTypesEnum.TEXTXML ||
91+
mimeType === FileMimeTypesEnum.APPLICATION_XML
92+
) {
93+
return true;
94+
}
95+
96+
return false;
97+
}

libs/shared/src/types/upload/upload.types.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ export enum FileMimeTypesEnum {
2727
'EXCELM' = 'application/vnd.ms-excel.sheet.macroenabled.12',
2828
'JSON' = 'application/json',
2929
'XML' = 'application/rss+xml',
30+
'APPLICATION_XML' = 'application/xml',
3031
'TEXTXML' = 'text/xml',
3132
'PNG' = 'image/png',
3233
'JPG' = 'image/jpeg',

pnpm-lock.yaml

Lines changed: 7 additions & 7 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)