channelape-sdk
Version:
A client for interacting with ChannelApe's API
58 lines • 2.54 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const Q = require("q");
const Resource_1 = require("../../model/Resource");
const Version_1 = require("../../model/Version");
class SubscriptionsService {
constructor(client) {
this.client = client;
}
get(businessId) {
const deferred = Q.defer();
const requestUrl = `/${Version_1.default.V1}${Resource_1.default.SUBSCRIPTIONS}/${businessId}`;
this.client.get(requestUrl, {}, (error, response, body) => {
if (error) {
deferred.reject(error);
}
else if (response.status === 200) {
deferred.resolve(this.formatSubscription(body));
}
else {
const channelApeApiErrorResponse = body;
channelApeApiErrorResponse.statusCode = response.status;
deferred.reject(channelApeApiErrorResponse);
}
});
return deferred.promise;
}
formatSubscription(subscriptionResponse) {
const subscription = {
errors: subscriptionResponse.errors
};
subscription.active = subscriptionResponse.active;
subscription.businessId = subscriptionResponse.businessId;
subscription.subscriptionId = subscriptionResponse.subscriptionId;
subscription.subscriptionProductHandle = subscriptionResponse.subscriptionProductHandle;
subscription.apiRateLimitPerSecond = subscriptionResponse.apiRateLimitPerSecond;
subscription.userRateLimitPerSecond = subscriptionResponse.userRateLimitPerSecond;
if (subscriptionResponse.createdAt) {
subscription.createdAt = new Date(subscriptionResponse.createdAt);
}
if (subscriptionResponse.lastCompletedTaskUsageRecordingTime) {
subscription.lastCompletedTaskUsageRecordingTime =
new Date(subscriptionResponse.lastCompletedTaskUsageRecordingTime);
}
if (subscriptionResponse.periodEndsAt) {
subscription.periodEndsAt = new Date(subscriptionResponse.periodEndsAt);
}
if (subscriptionResponse.periodStartedAt) {
subscription.periodStartedAt = new Date(subscriptionResponse.periodStartedAt);
}
if (subscriptionResponse.updatedAt) {
subscription.updatedAt = new Date(subscriptionResponse.updatedAt);
}
return subscription;
}
}
exports.default = SubscriptionsService;
//# sourceMappingURL=SubscriptionsService.js.map