Skip to content

Commit 3b1bfa1

Browse files
R2-2807 - Order Queue sending DELETE method first
- When a attachment is delete and another is added, the deleting will be send first
1 parent 978e443 commit 3b1bfa1

File tree

2 files changed

+24
-2
lines changed

2 files changed

+24
-2
lines changed

Diff for: app/javascript/libs/queue/index.js

+8-2
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,13 @@ import transformOfflineRequest from "../transform-offline-request";
1212
import EventManager from "../messenger";
1313
import { queueIndexedDB } from "../../db";
1414

15-
import { deleteFromQueue, messageQueueFailed, messageQueueSkip, messageQueueSuccess } from "./utils";
15+
import {
16+
deleteFromQueue,
17+
messageQueueFailed,
18+
messageQueueSkip,
19+
messageQueueSuccess,
20+
sortQueueByDeleteFirst
21+
} from "./utils";
1622
import {
1723
QUEUE_PENDING,
1824
QUEUE_READY,
@@ -141,7 +147,7 @@ class Queue {
141147
if (this.ready) {
142148
this.working = true;
143149

144-
const item = head(this.queue);
150+
const item = head(sortQueueByDeleteFirst(this.queue));
145151

146152
if (item && !item?.processed && ((item.tries || 0) < QUEUE_ALLOWED_RETRIES || this.force)) {
147153
this.onAttachmentProcess(item);

Diff for: app/javascript/libs/queue/utils.js

+16
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import { queueIndexedDB } from "../../db";
44
import EventManager from "../messenger";
5+
import { METHODS } from "../../config/constants";
56

67
import { QUEUE_FAILED, QUEUE_SKIP, QUEUE_SUCCESS } from "./constants";
78

@@ -28,3 +29,18 @@ export const messageQueueSuccess = action => {
2829
EventManager.publish(QUEUE_SUCCESS, action);
2930
}
3031
};
32+
33+
export const sortQueueByDeleteFirst = queue =>
34+
queue.sort((elem1, elem2) => {
35+
if (elem1.api.method === elem2.api.method) {
36+
return 0;
37+
}
38+
if (elem1.api.method === METHODS.DELETE) {
39+
return -1;
40+
}
41+
if (elem2.api.method === METHODS.DELETE) {
42+
return 1;
43+
}
44+
45+
return 0;
46+
});

0 commit comments

Comments
 (0)