@bunnyapp/api-client
Version:
Node.js client for Bunny CRM
55 lines • 2.14 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = featureUsageCreate;
const query = `mutation featureUsageCreate ($attributes: FeatureUsageAttributes!) {
featureUsageCreate (attributes: $attributes) {
errors
featureUsage {
id
quantity
usageAt
subscription {
id
}
feature {
id
code
name
}
}
}
}`;
/**
* Record feature usage for a subscription
* @param {string} featureCode Code for the feature that is being used
* @param {number} quantity Amount of usage to record
* @param {string} subscriptionId ID of the subscription that has the usage
* @param {string} usageAt ISO8601 date string. Defaults to now
* @returns {Promise<NonNullable<NonNullable<Mutation['featureUsageCreate']>['featureUsage']>>}
*/
async function featureUsageCreate(featureCode, quantity, subscriptionId, usageAt = null) {
var _a;
const variables = {
attributes: {
quantity,
subscriptionId,
featureCode,
},
};
if (usageAt) {
variables.attributes.usageAt = usageAt;
}
const res = await this.query(query, variables);
const featureUsageCreate = (_a = res === null || res === void 0 ? void 0 : res.data) === null || _a === void 0 ? void 0 : _a.featureUsageCreate;
if (res === null || res === void 0 ? void 0 : res.errors) {
throw new Error(Array.isArray(res.errors) ? res.errors.map(e => e.message).join() : res.errors);
}
if (featureUsageCreate === null || featureUsageCreate === void 0 ? void 0 : featureUsageCreate.errors) {
throw new Error(Array.isArray(featureUsageCreate.errors) ? featureUsageCreate.errors.join() : featureUsageCreate.errors);
}
if (!(featureUsageCreate === null || featureUsageCreate === void 0 ? void 0 : featureUsageCreate.featureUsage)) {
throw new Error('Feature usage not created');
}
return featureUsageCreate.featureUsage;
}
//# sourceMappingURL=feature-usage-create.js.map