Skip to content

Commit f186489

Browse files
committed
fixes
1 parent 3c2d158 commit f186489

3 files changed

Lines changed: 20 additions & 29 deletions

File tree

src/contacts/imports/contact-imports.spec.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ describe('ContactImports', () => {
2424
file: new Blob(['email,first_name\nfoo@example.com,Foo\n'], {
2525
type: 'text/csv',
2626
}),
27-
fileName: 'contacts.csv',
2827
columnMap: {
2928
email: 'Email',
3029
firstName: 'First Name',

src/contacts/imports/contact-imports.ts

Lines changed: 20 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ import type {
1717
ListContactImportsResponseSuccess,
1818
} from './interfaces/list-contact-imports.interface';
1919

20+
type ContactImportFormFieldValue = string | object | null;
21+
2022
export class ContactImports {
2123
constructor(private readonly resend: Resend) {}
2224

@@ -59,28 +61,24 @@ export class ContactImports {
5961
private buildCreateFormData(payload: CreateContactImportOptions): FormData {
6062
const formData = new FormData();
6163

62-
if (payload.fileName !== undefined) {
63-
formData.append('file', payload.file, payload.fileName);
64-
} else {
65-
formData.append('file', payload.file);
66-
}
64+
formData.append('file', payload.file);
6765

68-
this.appendJsonField(
66+
this.appendField(
6967
formData,
7068
'column_map',
71-
this.buildColumnMap(payload.columnMap),
69+
this.buildColumnMap(payload.columnMap ?? null),
7270
);
73-
this.appendStringField(formData, 'on_conflict', payload.onConflict);
74-
this.appendStringField(formData, 'on_error', payload.onError);
75-
this.appendJsonField(formData, 'segments', payload.segments);
76-
this.appendJsonField(formData, 'topics', payload.topics);
71+
this.appendField(formData, 'on_conflict', payload.onConflict ?? null);
72+
this.appendField(formData, 'on_error', payload.onError ?? null);
73+
this.appendField(formData, 'segments', payload.segments ?? null);
74+
this.appendField(formData, 'topics', payload.topics ?? null);
7775

7876
return formData;
7977
}
8078

81-
private buildColumnMap(columnMap?: ContactImportColumnMap) {
82-
if (columnMap === undefined) {
83-
return undefined;
79+
private buildColumnMap(columnMap: ContactImportColumnMap | null) {
80+
if (columnMap === null) {
81+
return null;
8482
}
8583

8684
return {
@@ -92,23 +90,18 @@ export class ContactImports {
9290
};
9391
}
9492

95-
private appendJsonField(
93+
private appendField(
9694
formData: FormData,
9795
name: string,
98-
value: unknown,
96+
value: ContactImportFormFieldValue,
9997
): void {
100-
if (value !== undefined) {
101-
formData.append(name, JSON.stringify(value));
98+
if (value === null) {
99+
return;
102100
}
103-
}
104101

105-
private appendStringField(
106-
formData: FormData,
107-
name: string,
108-
value: string | undefined,
109-
): void {
110-
if (value !== undefined) {
111-
formData.append(name, value);
112-
}
102+
formData.append(
103+
name,
104+
typeof value === 'string' ? value : JSON.stringify(value),
105+
);
113106
}
114107
}

src/contacts/imports/interfaces/create-contact-import.interface.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@ export interface ContactImportTopic {
2929

3030
export interface CreateContactImportOptions {
3131
file: Blob;
32-
fileName?: string;
3332
columnMap?: ContactImportColumnMap;
3433
onConflict?: ContactImportOnConflict;
3534
onError?: ContactImportOnError;

0 commit comments

Comments
 (0)