amberflo-metering-typescript
Version:
Amberflo metering client for TypeScript
59 lines • 2.65 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.CustomerProductPlanClient = void 0;
const baseClient_1 = __importDefault(require("./baseClient"));
/**
* See: https://docs.amberflo.io/reference/post_payments-pricing-amberflo-customer-pricing
*/
class CustomerProductPlanClient extends baseClient_1.default {
/**
* Initialize a new `CustomerProductPlanClient`
* `debug`: Whether to issue debug level logs or not.
* `retry`: Whether to retry idempotent requests on 5xx or network errors, or retry configuration (see https://github.com/softonic/axios-retry).
*/
constructor(apiKey, debug = false, retry = true) {
super(apiKey, debug, 'CustomerProductPlanClient', retry);
this.path = "/payments/pricing/amberflo/customer-pricing";
this.pathAll = this.path + "/list";
}
/**
* List the entire history of product plans of the given customer.
*/
list(customerId) {
return __awaiter(this, void 0, void 0, function* () {
return this.doGet(this.pathAll, { CustomerId: customerId });
});
}
/**
* Get the latest product plan of the given customer.
*/
get(customerId) {
return __awaiter(this, void 0, void 0, function* () {
return this.doGet(this.path, { CustomerId: customerId });
});
}
/**
* Relates the customer to a product plan.
* See https://docs.amberflo.io/reference/post_payments-pricing-amberflo-customer-pricing
*/
addOrUpdate(payload) {
return __awaiter(this, void 0, void 0, function* () {
payload.validate();
return this.doPost(this.path, payload);
});
}
}
exports.CustomerProductPlanClient = CustomerProductPlanClient;
//# sourceMappingURL=customerProductPlanClient.js.map