@@ -2,8 +2,7 @@ import { Readable } from "stream";
22import HTTPClient from "./http" ;
33import * as Types from "./types" ;
44import { AxiosResponse , AxiosRequestConfig } from "axios" ;
5-
6- import { ensureJSON , toArray } from "./utils" ;
5+ import { createMultipartFormData , ensureJSON , toArray } from "./utils" ;
76
87type ChatType = "group" | "room" ;
98type RequestOption = {
@@ -455,8 +454,8 @@ export default class Client {
455454
456455 public async createUploadAudienceGroup ( uploadAudienceGroup : {
457456 description : string ;
458- isIfaAudience : boolean ;
459- audiences : { id : string } [ ] ;
457+ isIfaAudience ? : boolean ;
458+ audiences ? : { id : string } [ ] ;
460459 uploadDescription ?: string ;
461460 } ) {
462461 const res = await this . http . post < {
@@ -470,6 +469,25 @@ export default class Client {
470469 return ensureJSON ( res ) ;
471470 }
472471
472+ public async createUploadAudienceGroupByFile ( uploadAudienceGroup : {
473+ description : string ;
474+ isIfaAudience ?: boolean ;
475+ uploadDescription ?: string ;
476+ file : Buffer | Readable ;
477+ } ) {
478+ const file = await this . http . toBuffer ( uploadAudienceGroup . file ) ;
479+ const body = createMultipartFormData ( { ...uploadAudienceGroup , file } ) ;
480+ const res = await this . http . post < {
481+ audienceGroupId : number ;
482+ type : "UPLOAD" ;
483+ description : string ;
484+ created : number ;
485+ } > ( `${ DATA_API_PREFIX } /audienceGroup/upload/byFile` , body , {
486+ headers : body . getHeaders ( ) ,
487+ } ) ;
488+ return ensureJSON ( res ) ;
489+ }
490+
473491 public async updateUploadAudienceGroup (
474492 uploadAudienceGroup : {
475493 audienceGroupId : number ;
@@ -490,6 +508,26 @@ export default class Client {
490508 return ensureJSON ( res ) ;
491509 }
492510
511+ public async updateUploadAudienceGroupByFile (
512+ uploadAudienceGroup : {
513+ audienceGroupId : number ;
514+ uploadDescription ?: string ;
515+ file : Buffer | Readable ;
516+ } ,
517+ // for set request timeout
518+ httpConfig ?: Partial < AxiosRequestConfig > ,
519+ ) {
520+ const file = await this . http . toBuffer ( uploadAudienceGroup . file ) ;
521+ const body = createMultipartFormData ( { ...uploadAudienceGroup , file } ) ;
522+
523+ const res = await this . http . put < { } > (
524+ `${ DATA_API_PREFIX } /audienceGroup/upload/byFile` ,
525+ body ,
526+ { headers : body . getHeaders ( ) , ...httpConfig } ,
527+ ) ;
528+ return ensureJSON ( res ) ;
529+ }
530+
493531 public async createClickAudienceGroup ( clickAudienceGroup : {
494532 description : string ;
495533 requestId : string ;
0 commit comments