@maxio-com/advanced-billing-sdk
Version:
Ultimate billing and pricing flexibility for B2B SaaS. Maxio integrates directly into your product, so you can seamlessly manage your product catalog, bill customers, and collect payments.
201 lines • 11.8 kB
JavaScript
"use strict";
/**
* AdvancedBilling
*
* This file was automatically generated for Maxio by APIMATIC v3.0 ( https://www.apimatic.io ).
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.WebhooksController = void 0;
var tslib_1 = require("tslib");
var core_js_1 = require("../core.js");
var createOrUpdateEndpointRequest_js_1 = require("../models/createOrUpdateEndpointRequest.js");
var enableWebhooksRequest_js_1 = require("../models/enableWebhooksRequest.js");
var enableWebhooksResponse_js_1 = require("../models/enableWebhooksResponse.js");
var endpoint_js_1 = require("../models/endpoint.js");
var endpointResponse_js_1 = require("../models/endpointResponse.js");
var replayWebhooksRequest_js_1 = require("../models/replayWebhooksRequest.js");
var replayWebhooksResponse_js_1 = require("../models/replayWebhooksResponse.js");
var webhookOrder_js_1 = require("../models/webhookOrder.js");
var webhookResponse_js_1 = require("../models/webhookResponse.js");
var webhookStatus_js_1 = require("../models/webhookStatus.js");
var schema_js_1 = require("../schema.js");
var baseController_js_1 = require("./baseController.js");
var core_1 = require("@apimatic/core");
var errorListResponseError_js_1 = require("../errors/errorListResponseError.js");
var WebhooksController = /** @class */ (function (_super) {
tslib_1.__extends(WebhooksController, _super);
function WebhooksController() {
return _super !== null && _super.apply(this, arguments) || this;
}
/**
* Allows you to view a list of webhooks. You can pass query parameters if you want to filter webhooks.
* See the [Webhooks](page:introduction/webhooks/webhooks) documentation for more information.
*
* @param status Webhooks with matching status would be returned.
* @param sinceDate Format YYYY-MM-DD. Returns Webhooks with the created_at date greater than or
* equal to the one specified.
* @param untilDate Format YYYY-MM-DD. Returns Webhooks with the created_at date less than or
* equal to the one specified.
* @param page Result records are organized in pages. By default, the first page of results
* is displayed. The page parameter specifies a page number of results to fetch.
* You can start navigating through the pages to consume the results. You do
* this by passing in a page parameter. Retrieve the next page by adding ?page=2
* to the query string. If there are no results to return, then an empty result
* set will be returned. Use in query `page=1`.
* @param perPage This parameter indicates how many records to fetch in each request. Default
* value is 20. The maximum allowed values is 200; any per_page value over 200
* will be changed to 200. Use in query `per_page=200`.
* @param order The order in which the Webhooks are returned.
* @param subscription The Advanced Billing id of a subscription you'd like to filter for
* @return Response from the API call
*/
WebhooksController.prototype.listWebhooks = function (_a, requestOptions_1) {
return tslib_1.__awaiter(this, arguments, void 0, function (_b, requestOptions) {
var req, mapped;
var status = _b.status, sinceDate = _b.sinceDate, untilDate = _b.untilDate, page = _b.page, perPage = _b.perPage, order = _b.order, subscription = _b.subscription;
return tslib_1.__generator(this, function (_c) {
req = this.createRequest('GET', '/webhooks.json');
mapped = req.prepareArgs({
status: [status, (0, schema_js_1.optional)(webhookStatus_js_1.webhookStatusSchema)],
sinceDate: [sinceDate, (0, schema_js_1.optional)((0, schema_js_1.string)())],
untilDate: [untilDate, (0, schema_js_1.optional)((0, schema_js_1.string)())],
page: [page, (0, schema_js_1.optional)((0, schema_js_1.number)())],
perPage: [perPage, (0, schema_js_1.optional)((0, schema_js_1.number)())],
order: [order, (0, schema_js_1.optional)(webhookOrder_js_1.webhookOrderSchema)],
subscription: [subscription, (0, schema_js_1.optional)((0, schema_js_1.number)())],
});
req.query('status', mapped.status, core_js_1.commaPrefix);
req.query('since_date', mapped.sinceDate, core_js_1.commaPrefix);
req.query('until_date', mapped.untilDate, core_js_1.commaPrefix);
req.query('page', mapped.page, core_js_1.commaPrefix);
req.query('per_page', mapped.perPage, core_js_1.commaPrefix);
req.query('order', mapped.order, core_js_1.commaPrefix);
req.query('subscription', mapped.subscription, core_js_1.commaPrefix);
req.authenticate([{ basicAuth: true }]);
return [2 /*return*/, req.callAsJson((0, schema_js_1.array)(webhookResponse_js_1.webhookResponseSchema), requestOptions)];
});
});
};
/**
* Allows you to enable webhooks for your site
*
* @param body
* @return Response from the API call
*/
WebhooksController.prototype.enableWebhooks = function (body, requestOptions) {
return tslib_1.__awaiter(this, void 0, void 0, function () {
var req, mapped;
return tslib_1.__generator(this, function (_a) {
req = this.createRequest('PUT', '/webhooks/settings.json');
mapped = req.prepareArgs({
body: [body, (0, schema_js_1.optional)(enableWebhooksRequest_js_1.enableWebhooksRequestSchema)],
});
req.header('Content-Type', 'application/json');
req.json(mapped.body);
req.authenticate([{ basicAuth: true }]);
return [2 /*return*/, req.callAsJson(enableWebhooksResponse_js_1.enableWebhooksResponseSchema, requestOptions)];
});
});
};
/**
* Replays webhooks. Posting to this endpoint does not immediately resend the webhooks. They are added
* to a queue and sent as soon as possible, depending on available system resources. You can submit an
* array of up to 1000 webhook IDs in the replay request.
*
* @param body
* @return Response from the API call
*/
WebhooksController.prototype.replayWebhooks = function (body, requestOptions) {
return tslib_1.__awaiter(this, void 0, void 0, function () {
var req, mapped;
return tslib_1.__generator(this, function (_a) {
req = this.createRequest('POST', '/webhooks/replay.json');
mapped = req.prepareArgs({
body: [body, (0, schema_js_1.optional)(replayWebhooksRequest_js_1.replayWebhooksRequestSchema)],
});
req.header('Content-Type', 'application/json');
req.json(mapped.body);
req.authenticate([{ basicAuth: true }]);
return [2 /*return*/, req.callAsJson(replayWebhooksResponse_js_1.replayWebhooksResponseSchema, requestOptions)];
});
});
};
/**
* Creates an endpoint and assigns a list of webhooks subscriptions (events) to it.
* See the [Webhooks Reference](page:introduction/webhooks/webhooks-reference#events) page for
* available events.
*
* @param body
* @return Response from the API call
*/
WebhooksController.prototype.createEndpoint = function (body, requestOptions) {
return tslib_1.__awaiter(this, void 0, void 0, function () {
var req, mapped;
return tslib_1.__generator(this, function (_a) {
req = this.createRequest('POST', '/endpoints.json');
mapped = req.prepareArgs({
body: [body, (0, schema_js_1.optional)(createOrUpdateEndpointRequest_js_1.createOrUpdateEndpointRequestSchema)],
});
req.header('Content-Type', 'application/json');
req.json(mapped.body);
req.throwOn(422, errorListResponseError_js_1.ErrorListResponseError, true, "HTTP Response Not OK. Status code: {$statusCode}. Response: '{$response.body}'.");
req.authenticate([{ basicAuth: true }]);
return [2 /*return*/, req.callAsJson(endpointResponse_js_1.endpointResponseSchema, requestOptions)];
});
});
};
/**
* Returns created endpoints for a site.
*
* @return Response from the API call
*/
WebhooksController.prototype.listEndpoints = function (requestOptions) {
return tslib_1.__awaiter(this, void 0, void 0, function () {
var req;
return tslib_1.__generator(this, function (_a) {
req = this.createRequest('GET', '/endpoints.json');
req.authenticate([{ basicAuth: true }]);
return [2 /*return*/, req.callAsJson((0, schema_js_1.array)(endpoint_js_1.endpointSchema), requestOptions)];
});
});
};
/**
* Updates an Endpoint. You can change the `url` of your endpoint or the list of
* `webhook_subscriptions` to which you are subscribed. See the [Webhooks Reference](page:
* introduction/webhooks/webhooks-reference#events) page for available events.
*
* Always send a complete list of events to which you want to subscribe. Sending a PUT request for an
* existing endpoint with an empty list of `webhook_subscriptions` will unsubscribe all events.
*
* If you want unsubscribe from a specific event, send a list of `webhook_subscriptions` without the
* specific event key.
*
* @param endpointId The Advanced Billing id for the endpoint that should
* be updated
* @param body
* @return Response from the API call
*/
WebhooksController.prototype.updateEndpoint = function (endpointId, body, requestOptions) {
return tslib_1.__awaiter(this, void 0, void 0, function () {
var req, mapped;
return tslib_1.__generator(this, function (_a) {
req = this.createRequest('PUT');
mapped = req.prepareArgs({
endpointId: [endpointId, (0, schema_js_1.number)()],
body: [body, (0, schema_js_1.optional)(createOrUpdateEndpointRequest_js_1.createOrUpdateEndpointRequestSchema)],
});
req.header('Content-Type', 'application/json');
req.json(mapped.body);
req.appendTemplatePath(templateObject_1 || (templateObject_1 = tslib_1.__makeTemplateObject(["/endpoints/", ".json"], ["/endpoints/", ".json"])), mapped.endpointId);
req.throwOn(404, core_1.ApiError, true, "Not Found:'{$response.body}'");
req.throwOn(422, errorListResponseError_js_1.ErrorListResponseError, true, "HTTP Response Not OK. Status code: {$statusCode}. Response: '{$response.body}'.");
req.authenticate([{ basicAuth: true }]);
return [2 /*return*/, req.callAsJson(endpointResponse_js_1.endpointResponseSchema, requestOptions)];
});
});
};
return WebhooksController;
}(baseController_js_1.BaseController));
exports.WebhooksController = WebhooksController;
var templateObject_1;
//# sourceMappingURL=webhooksController.js.map