@@ -17,6 +17,8 @@ import type {
1717 ListContactImportsResponseSuccess ,
1818} from './interfaces/list-contact-imports.interface' ;
1919
20+ type ContactImportFormFieldValue = string | object | null ;
21+
2022export 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}
0 commit comments