cmp-aws-database 1.2.0-dev.122 → 1.2.0-dev.123
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import { GenericDAO } from "../../../base-dao";
|
|
2
2
|
import { OrderModel } from "./order-model";
|
|
3
|
+
export interface GetOrdersByUserIdResponse {
|
|
4
|
+
orders: OrderModel[];
|
|
5
|
+
isFirstOrder: boolean;
|
|
6
|
+
}
|
|
3
7
|
declare class OrderDAO extends GenericDAO<OrderModel> {
|
|
4
8
|
/**
|
|
5
9
|
* Get Order by Order ID
|
|
@@ -7,6 +11,14 @@ declare class OrderDAO extends GenericDAO<OrderModel> {
|
|
|
7
11
|
* @returns Order Model
|
|
8
12
|
*/
|
|
9
13
|
getById: (orderId: string) => Promise<OrderModel>;
|
|
14
|
+
/**
|
|
15
|
+
* Get orders by User ID with firstOrder flag.
|
|
16
|
+
* firstOrder is true if at least one order has status in firstOrderStatuses.
|
|
17
|
+
* @param userId User ID
|
|
18
|
+
* @param firstOrderStatuses Statuses that count as "first order" (default: APPROVED, PENDING, COMPLETED)
|
|
19
|
+
* @returns Orders and firstOrder boolean
|
|
20
|
+
*/
|
|
21
|
+
getByUserId: (userId: string, firstOrderStatuses?: string[]) => Promise<GetOrdersByUserIdResponse>;
|
|
10
22
|
}
|
|
11
23
|
export declare const orderDao: OrderDAO;
|
|
12
24
|
export {};
|
|
@@ -16,7 +16,23 @@ class OrderDAO extends base_dao_1.GenericDAO {
|
|
|
16
16
|
order.orderId = orderId;
|
|
17
17
|
return this.get(order);
|
|
18
18
|
};
|
|
19
|
+
/**
|
|
20
|
+
* Get orders by User ID with firstOrder flag.
|
|
21
|
+
* firstOrder is true if at least one order has status in firstOrderStatuses.
|
|
22
|
+
* @param userId User ID
|
|
23
|
+
* @param firstOrderStatuses Statuses that count as "first order" (default: APPROVED, PENDING, COMPLETED)
|
|
24
|
+
* @returns Orders and firstOrder boolean
|
|
25
|
+
*/
|
|
26
|
+
this.getByUserId = async (userId, firstOrderStatuses = ["APPROVED", "PENDING", "COMPLETED"]) => {
|
|
27
|
+
const orders = [];
|
|
28
|
+
const results = await this.parallelQuery(order_model_1.OrderModel, [{ userId }], 1, { indexName: "userIndex" });
|
|
29
|
+
for (const order of results.flat()) {
|
|
30
|
+
orders.push(order);
|
|
31
|
+
}
|
|
32
|
+
const firstOrder = orders.some((order) => firstOrderStatuses.includes(order.orderStatus));
|
|
33
|
+
return { orders, isFirstOrder: firstOrder };
|
|
34
|
+
};
|
|
19
35
|
}
|
|
20
36
|
}
|
|
21
37
|
exports.orderDao = new OrderDAO();
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXItZGFvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2N1c3RvbWVyLXVzZXIvb3JkZXItbW9kdWxlL29yZGVyL29yZGVyLWRhby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxnREFBdUQ7QUFDdkQsK0NBQTJDO0FBTzNDLE1BQU0sUUFBUyxTQUFRLHFCQUFzQjtJQUE3Qzs7UUFDSTs7OztXQUlHO1FBQ0gsWUFBTyxHQUFHLEtBQUssRUFBRSxPQUFlLEVBQXVCLEVBQUU7WUFDckQsTUFBTSxLQUFLLEdBQUcsSUFBSSx3QkFBVSxFQUFFLENBQUM7WUFDL0IsS0FBSyxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7WUFDeEIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNCLENBQUMsQ0FBQztRQUVGOzs7Ozs7V0FNRztRQUNILGdCQUFXLEdBQUcsS0FBSyxFQUNmLE1BQWMsRUFDZCxxQkFBK0IsQ0FBQyxVQUFVLEVBQUUsU0FBUyxFQUFFLFdBQVcsQ0FBQyxFQUNqQyxFQUFFO1lBQ3BDLE1BQU0sTUFBTSxHQUFpQixFQUFFLENBQUM7WUFDaEMsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLHdCQUFVLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7WUFDbEcsS0FBSyxNQUFNLEtBQUssSUFBSSxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQztnQkFDakMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFtQixDQUFDLENBQUM7WUFDckMsQ0FBQztZQUNELE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUNyQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLFdBQXFCLENBQUMsQ0FDM0QsQ0FBQztZQUNGLE9BQU8sRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxDQUFDO1FBQ2hELENBQUMsQ0FBQztJQUNOLENBQUM7Q0FBQTtBQUVZLFFBQUEsUUFBUSxHQUFHLElBQUksUUFBUSxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBHZW5lcmljREFPLCBtYXBwZXIgfSBmcm9tIFwiLi4vLi4vLi4vYmFzZS1kYW9cIjtcbmltcG9ydCB7IE9yZGVyTW9kZWwgfSBmcm9tIFwiLi9vcmRlci1tb2RlbFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEdldE9yZGVyc0J5VXNlcklkUmVzcG9uc2Uge1xuICAgIG9yZGVyczogT3JkZXJNb2RlbFtdO1xuICAgIGlzRmlyc3RPcmRlcjogYm9vbGVhbjtcbn1cblxuY2xhc3MgT3JkZXJEQU8gZXh0ZW5kcyBHZW5lcmljREFPPE9yZGVyTW9kZWw+IHtcbiAgICAvKipcbiAgICAgKiBHZXQgT3JkZXIgYnkgT3JkZXIgSURcbiAgICAgKiBAcGFyYW0gb3JkZXJJZCBPcmRlciBJRFxuICAgICAqIEByZXR1cm5zIE9yZGVyIE1vZGVsXG4gICAgICovXG4gICAgZ2V0QnlJZCA9IGFzeW5jIChvcmRlcklkOiBzdHJpbmcpOiBQcm9taXNlPE9yZGVyTW9kZWw+ID0+IHtcbiAgICAgICAgY29uc3Qgb3JkZXIgPSBuZXcgT3JkZXJNb2RlbCgpO1xuICAgICAgICBvcmRlci5vcmRlcklkID0gb3JkZXJJZDtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0KG9yZGVyKTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogR2V0IG9yZGVycyBieSBVc2VyIElEIHdpdGggZmlyc3RPcmRlciBmbGFnLlxuICAgICAqIGZpcnN0T3JkZXIgaXMgdHJ1ZSBpZiBhdCBsZWFzdCBvbmUgb3JkZXIgaGFzIHN0YXR1cyBpbiBmaXJzdE9yZGVyU3RhdHVzZXMuXG4gICAgICogQHBhcmFtIHVzZXJJZCBVc2VyIElEXG4gICAgICogQHBhcmFtIGZpcnN0T3JkZXJTdGF0dXNlcyBTdGF0dXNlcyB0aGF0IGNvdW50IGFzIFwiZmlyc3Qgb3JkZXJcIiAoZGVmYXVsdDogQVBQUk9WRUQsIFBFTkRJTkcsIENPTVBMRVRFRClcbiAgICAgKiBAcmV0dXJucyBPcmRlcnMgYW5kIGZpcnN0T3JkZXIgYm9vbGVhblxuICAgICAqL1xuICAgIGdldEJ5VXNlcklkID0gYXN5bmMgKFxuICAgICAgICB1c2VySWQ6IHN0cmluZyxcbiAgICAgICAgZmlyc3RPcmRlclN0YXR1c2VzOiBzdHJpbmdbXSA9IFtcIkFQUFJPVkVEXCIsIFwiUEVORElOR1wiLCBcIkNPTVBMRVRFRFwiXVxuICAgICk6IFByb21pc2U8R2V0T3JkZXJzQnlVc2VySWRSZXNwb25zZT4gPT4ge1xuICAgICAgICBjb25zdCBvcmRlcnM6IE9yZGVyTW9kZWxbXSA9IFtdO1xuICAgICAgICBjb25zdCByZXN1bHRzID0gYXdhaXQgdGhpcy5wYXJhbGxlbFF1ZXJ5KE9yZGVyTW9kZWwsIFt7IHVzZXJJZCB9XSwgMSwgeyBpbmRleE5hbWU6IFwidXNlckluZGV4XCIgfSk7XG4gICAgICAgIGZvciAoY29uc3Qgb3JkZXIgb2YgcmVzdWx0cy5mbGF0KCkpIHtcbiAgICAgICAgICAgIG9yZGVycy5wdXNoKG9yZGVyIGFzIE9yZGVyTW9kZWwpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGZpcnN0T3JkZXIgPSBvcmRlcnMuc29tZSgob3JkZXIpID0+XG4gICAgICAgICAgICBmaXJzdE9yZGVyU3RhdHVzZXMuaW5jbHVkZXMob3JkZXIub3JkZXJTdGF0dXMgYXMgc3RyaW5nKVxuICAgICAgICApO1xuICAgICAgICByZXR1cm4geyBvcmRlcnMsIGlzRmlyc3RPcmRlcjogZmlyc3RPcmRlciB9O1xuICAgIH07XG59XG5cbmV4cG9ydCBjb25zdCBvcmRlckRhbyA9IG5ldyBPcmRlckRBTygpOyJdfQ==
|