UNPKG

gplayapi-ts

Version:
58 lines 1.92 kB
import { GPNilPayloadError, GPMissingAppDeliveryDataError } from "../../errors"; import { URL_PURCHASE, URL_DELIVERY } from "../constants"; class LibraryEndpoint { constructor(doAuthedReq, getAppDetails) { this.doAuthedReq = doAuthedReq; this.getAppDetails = getAppDetails; } async getBuyResponse(packageName, version) { const params = new URLSearchParams(); params.set("ot", "1"); params.set("doc", packageName); params.set("vc", version.toString()); const payload = await this.doAuthedReq(`${URL_PURCHASE}?${params.toString()}`, { method: "POST" }); if (!payload) { throw new GPNilPayloadError(); } if (!payload.buyResponse) { throw new GPNilPayloadError("Buy response is missing"); } return payload.buyResponse; } async getDeliveryResponse(packageName, version) { const params = new URLSearchParams(); params.set("ot", "1"); params.set("doc", packageName); params.set("vc", version.toString()); const payload = await this.doAuthedReq(`${URL_DELIVERY}?${params.toString()}`, { method: "GET" }); if (!payload) { throw new GPNilPayloadError(); } if (!payload.deliveryResponse) { throw new GPNilPayloadError("Delivery response is missing"); } return payload.deliveryResponse; } async purchase(packageName, version) { let actualVersion = version; if (!actualVersion) { const app = await this.getAppDetails(packageName); actualVersion = app.versionCode; } await this.getBuyResponse(packageName, actualVersion); const deliveryResponse = await this.getDeliveryResponse(packageName, actualVersion); const appDeliveryData = deliveryResponse.appDeliveryData; if (!appDeliveryData) { throw new GPMissingAppDeliveryDataError(); } return appDeliveryData; } } export { LibraryEndpoint }; //# sourceMappingURL=library.mjs.map