@saazpayhq/node-sdk
Version:
Node client for saazpay
1 lines • 7.03 kB
Source Map (JSON)
{"version":3,"sources":["../index.ts"],"sourcesContent":["const baseUrl: string | undefined = process.env.SAAZPAY_BASE_URL;\n\nexport interface IPlan {\n id: string;\n price: number;\n currency: string;\n tax_mode: string;\n name: string;\n description: string;\n billing_frequency: number;\n billing_interval: string;\n trial_frequency: null;\n trial_interval: null;\n quantity_minimum: number;\n quantity_maximum: number;\n product_id: string;\n createdAt: string;\n updatedAt: string;\n product: IProduct;\n}\n\nexport interface IProduct {\n id: string;\n name: string;\n description: string;\n image_url: string;\n application_id: string;\n createdAt: string;\n updatedAt: string;\n}\n\nexport const getPlans = async ({\n appId,\n}: {\n appId: string;\n}): Promise<IPlan[]> => {\n if (!baseUrl) {\n throw new Error(\"Saazpay base URL is not defined\");\n }\n const res = await fetch(`${baseUrl}/api/v1/plans?id=${appId}`, {\n method: \"GET\",\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: `Bearer ${process.env.SAAZPAY_API_KEY}`,\n },\n })\n .then((res) => res.json())\n .catch((err) => {\n return err;\n });\n\n return res;\n};\n\nexport interface ISubscription {\n id: string;\n customer_id: string;\n unique_identifier: string;\n status: string;\n paused_at: null;\n canceled_at: null;\n scheduled_change: null;\n next_billed_at: string;\n starts_at: string;\n ends_at: string;\n created_at: string;\n applicationId: string;\n product: ISubscriptionProduct;\n price: ISubscriptionPrice;\n}\n\ninterface ISubscriptionPrice {\n id: string;\n name: string;\n description: string;\n product_id: string;\n billing_frequency: number;\n billing_interval: string;\n trial_frequency: number;\n trial_interval: string;\n currency: string;\n price: number;\n}\n\ninterface ISubscriptionProduct {\n id: string;\n name: string;\n description: string;\n image_url: string;\n}\nexport const getActiveSubscription = async ({\n appId,\n userId,\n}: {\n appId: string;\n userId: string;\n}): Promise<ISubscription | null> => {\n if (!baseUrl) {\n throw new Error(\"Saazpay base URL is not defined\");\n }\n const res = await fetch(\n `${baseUrl}/api/v1/subscriptions?appId=${appId}&userId=${userId}`,\n {\n method: \"GET\",\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: `Bearer ${process.env.SAAZPAY_API_KEY}`,\n },\n }\n )\n .then((res) => res.json())\n .catch((err) => {\n return err;\n });\n\n return res;\n};\n\nexport interface IManagementUrl {\n customerPortal: string;\n cancelSubscription: string;\n updatePaymentMethod: string;\n}\nexport const getManagementUrls = async ({\n appId,\n subscriptionId,\n}: {\n appId: string;\n subscriptionId: string;\n}): Promise<IManagementUrl> => {\n if (!baseUrl) {\n throw new Error(\"Saazpay base URL is not defined\");\n }\n const res = await fetch(\n `${baseUrl}/api/v1/subscriptions/management?appId=${appId}&subscriptionId=${subscriptionId}`,\n {\n method: \"GET\",\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: `Bearer ${process.env.SAAZPAY_API_KEY}`,\n },\n }\n )\n .then((res) => {\n return res.json();\n })\n .catch((err) => {\n console.error(err);\n return \"\";\n });\n\n return res;\n};\n\nexport interface IProration {\n currencyCode: string;\n proratedCharge: number;\n creditAmount: number;\n subTotal: number;\n tax: number;\n discount: number;\n creditApplied: number;\n grandTotal: number;\n}\n\nexport const previewPlan = async ({\n subscriptionId,\n newPlanId,\n appId,\n}: {\n subscriptionId: string;\n newPlanId: string;\n appId: string;\n}): Promise<IProration> => {\n if (!baseUrl) {\n throw new Error(\"Saazpay base URL is not defined\");\n }\n const res = await fetch(\n `${baseUrl}/api/v1/subscriptions/management/preview-plan?appId=${appId}&subscriptionId=${subscriptionId}&newPlanId=${newPlanId}`,\n {\n method: \"GET\",\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: `Bearer ${process.env.SAAZPAY_API_KEY}`,\n },\n }\n )\n .then((res) => {\n return res.json();\n })\n .catch((err) => {\n return err;\n });\n\n return res;\n};\n\nexport interface IUpdatePlan {\n id: string;\n status: string;\n}\n\nexport const changePlan = async ({\n subscriptionId,\n newPlanId,\n appId,\n}: {\n subscriptionId: string;\n newPlanId: string;\n appId: string;\n}): Promise<IUpdatePlan> => {\n if (!baseUrl) {\n throw new Error(\"Saazpay base URL is not defined\");\n }\n const res = await fetch(\n `${baseUrl}/api/v1/subscriptions/management/change-plan?appId=${appId}&subscriptionId=${subscriptionId}&newPlanId=${newPlanId}`,\n {\n method: \"PUT\",\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: `Bearer ${process.env.SAAZPAY_API_KEY}`,\n },\n }\n )\n .then((res) => {\n return res.json();\n })\n .catch((err) => {\n return err;\n });\n\n return res;\n};\n"],"mappings":"yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,gBAAAE,EAAA,0BAAAC,EAAA,sBAAAC,EAAA,aAAAC,EAAA,gBAAAC,IAAA,eAAAC,EAAAP,GAAA,IAAMQ,EAA8B,QAAQ,IAAI,iBA+BnCH,EAAW,MAAO,CAC7B,MAAAI,CACF,IAEwB,CACtB,GAAI,CAACD,EACH,MAAM,IAAI,MAAM,iCAAiC,EAcnD,OAZY,MAAM,MAAM,GAAGA,qBAA2BC,IAAS,CAC7D,OAAQ,MACR,QAAS,CACP,eAAgB,mBAChB,cAAe,UAAU,QAAQ,IAAI,iBACvC,CACF,CAAC,EACE,KAAMC,GAAQA,EAAI,KAAK,CAAC,EACxB,MAAOC,GACCA,CACR,CAGL,EAsCaR,EAAwB,MAAO,CAC1C,MAAAM,EACA,OAAAG,CACF,IAGqC,CACnC,GAAI,CAACJ,EACH,MAAM,IAAI,MAAM,iCAAiC,EAiBnD,OAfY,MAAM,MAChB,GAAGA,gCAAsCC,YAAgBG,IACzD,CACE,OAAQ,MACR,QAAS,CACP,eAAgB,mBAChB,cAAe,UAAU,QAAQ,IAAI,iBACvC,CACF,CACF,EACG,KAAMF,GAAQA,EAAI,KAAK,CAAC,EACxB,MAAOC,GACCA,CACR,CAGL,EAOaP,EAAoB,MAAO,CACtC,MAAAK,EACA,eAAAI,CACF,IAG+B,CAC7B,GAAI,CAACL,EACH,MAAM,IAAI,MAAM,iCAAiC,EAoBnD,OAlBY,MAAM,MAChB,GAAGA,2CAAiDC,oBAAwBI,IAC5E,CACE,OAAQ,MACR,QAAS,CACP,eAAgB,mBAChB,cAAe,UAAU,QAAQ,IAAI,iBACvC,CACF,CACF,EACG,KAAMH,GACEA,EAAI,KAAK,CACjB,EACA,MAAOC,IACN,QAAQ,MAAMA,CAAG,EACV,GACR,CAGL,EAaaL,EAAc,MAAO,CAChC,eAAAO,EACA,UAAAC,EACA,MAAAL,CACF,IAI2B,CACzB,GAAI,CAACD,EACH,MAAM,IAAI,MAAM,iCAAiC,EAmBnD,OAjBY,MAAM,MAChB,GAAGA,wDAA8DC,oBAAwBI,eAA4BC,IACrH,CACE,OAAQ,MACR,QAAS,CACP,eAAgB,mBAChB,cAAe,UAAU,QAAQ,IAAI,iBACvC,CACF,CACF,EACG,KAAMJ,GACEA,EAAI,KAAK,CACjB,EACA,MAAOC,GACCA,CACR,CAGL,EAOaT,EAAa,MAAO,CAC/B,eAAAW,EACA,UAAAC,EACA,MAAAL,CACF,IAI4B,CAC1B,GAAI,CAACD,EACH,MAAM,IAAI,MAAM,iCAAiC,EAmBnD,OAjBY,MAAM,MAChB,GAAGA,uDAA6DC,oBAAwBI,eAA4BC,IACpH,CACE,OAAQ,MACR,QAAS,CACP,eAAgB,mBAChB,cAAe,UAAU,QAAQ,IAAI,iBACvC,CACF,CACF,EACG,KAAMJ,GACEA,EAAI,KAAK,CACjB,EACA,MAAOC,GACCA,CACR,CAGL","names":["node_sdk_exports","__export","changePlan","getActiveSubscription","getManagementUrls","getPlans","previewPlan","__toCommonJS","baseUrl","appId","res","err","userId","subscriptionId","newPlanId"]}