@uninspired/plunk-client
Version:
JS client for the Plunk HTTP API
5 lines (3 loc) • 2.14 kB
JavaScript
class i{#a;#e;constructor(t,a){this.#a=t,this.#e=a}#t=async(t,a,e)=>{let n=new Headers;if(n.set("Authorization",`Bearer ${this.#e}`),e)n.set("Content-Type","application/json");let s=await fetch(new URL(t,this.#a),{method:a,headers:n,body:e?JSON.stringify(e):void 0});if(!s.ok)throw Error(`${s.status} ${s.statusText}`);let r;if(s.headers.get("Content-Type")?.startsWith("application/json"))r=await s.json();else r=await s.text();return r};#s=async(t)=>{return t.arrayBuffer().then((a)=>Buffer.from(a).toString("base64"))};#n=async(t)=>{let a=[];for(let e of t){let n={filename:e.name,content:await this.#s(e),contentType:e.type};a.push(n)}return a};trackEvent=async(t)=>{return await this.#t("/v1/track","POST",t)};sendEmail=async(t)=>{return await this.#t("/v1/send","POST",{...t,attachments:t.attachments?await this.#n(t.attachments):void 0})};sendCampaign=async(t,a)=>{await this.#t("/v1/campaigns/send","POST",{id:t,live:a?.live??!1,delay:a?.delay??0})};createCampaign=async(t)=>{return await this.#t("/v1/campaigns","POST",t)};updateCampaign=async(t,a)=>{return await this.#t("/v1/campaigns","PUT",{id:t,...a})};deleteCampaign=async(t)=>{return await this.#t(`/v1/campaigns/${t}`,"DELETE",{id:t})};getContactById=async(t)=>{let a=await this.#t(`/v1/contacts/${t}`,"GET");return{...a,data:JSON.parse(a.data)}};getAllContacts=async()=>{return(await this.#t("/v1/contacts","GET")).map((a)=>{return{...a,data:JSON.parse(a.data)}})};getNumberOfContacts=async()=>{return await this.#t("/v1/contacts/count","GET")};createContact=async(t)=>{let a=await this.#t("/v1/contacts","POST",t);return{...a,data:JSON.parse(a.data)}};subscribeContact=async(t)=>{return await this.#t("/v1/contacts/subscribe","POST",t)};unsubscribeContact=async(t)=>{return await this.#t("/v1/contacts/unsubscribe","POST",t)};updateContact=async(t)=>{let a=await this.#t("/v1/contacts","PUT",t);return{...a,data:JSON.parse(a.data)}};deleteContact=async(t)=>{let a=await this.#t("/v1/contacts","DELETE",t);return{...a,data:JSON.parse(a.data)}}}var o=i;export{o as default,i as PlunkApiClient};
//# debugId=9CA3335D1F34CBB164756E2164756E21
//# sourceMappingURL=index.js.map