@forge/events
2.0.152.0.15-experimental-e9a12c2
out/queue.js~
out/queue.jsModified+40−11
Index: package/out/queue.js
===================================================================
--- package/out/queue.js
+++ package/out/queue.js
@@ -11,28 +11,57 @@
apiClient;
constructor(queueParams, apiClient = api_1.__requestAtlassianAsApp) {
this.queueParams = queueParams;
this.apiClient = apiClient;
+ this.validate();
+ }
+ validate() {
(0, validators_1.validateQueueKey)(this.queueParams.key);
}
+ isFifo() {
+ return false;
+ }
+ getEndpoint() {
+ return queries_1.PUSH_PATH;
+ }
async push(events) {
- const validEvents = (0, validators_1.validatePushEvents)(events);
+ const validEvents = (0, validators_1.validatePushEvents)(events, this.isFifo());
const queueName = this.queueParams.key;
const jobId = (0, uuid_1.v4)();
- const pushRequest = {
- queueName: queueName,
- jobId: jobId,
- type: 'avi:forge:app:event',
- schema: 'ari:cloud:ecosystem::forge/app-event-2',
- payload: validEvents,
- time: new Date().toISOString()
- };
- const response = await (0, queries_1.post)(queries_1.PUSH_PATH, pushRequest, this.apiClient);
+ const pushRequest = this.populatePayload(queueName, jobId, validEvents);
+ const endpoint = this.getEndpoint();
+ const response = await (0, queries_1.post)(endpoint, pushRequest, this.apiClient);
const result = { jobId };
- await (0, validators_1.validatePushAPIResponse)(pushRequest, response, result);
+ if (this.isFifo()) {
+ return await (0, validators_1.validateFifoResponse)(pushRequest, response);
+ }
+ else {
+ await (0, validators_1.validatePushAPIResponse)(pushRequest, response, result);
+ }
return result;
}
getJob(jobId) {
return new jobProgress_1.JobProgress(this.queueParams, jobId, this.apiClient);
}
+ populatePayload(queueName, jobId, validEvents) {
+ if (this.isFifo()) {
+ validEvents.forEach((event) => {
+ event.queueName = queueName;
+ });
+ return {
+ events: validEvents,
+ queueName: queueName,
+ jobId: jobId,
+ time: new Date().toISOString()
+ };
+ }
+ return {
+ queueName,
+ jobId,
+ type: 'avi:forge:app:event',
+ schema: 'ari:cloud:ecosystem::forge/app-event-2',
+ payload: validEvents,
+ time: new Date().toISOString()
+ };
+ }
}
exports.Queue = Queue;