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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXItZGFvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2N1c3RvbWVyLXVzZXIvb3JkZXItbW9kdWxlL29yZGVyL29yZGVyLWRhby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxnREFBK0M7QUFDL0MsK0NBQTJDO0FBRTNDLE1BQU0sUUFBUyxTQUFRLHFCQUFzQjtJQUE3Qzs7UUFDSTs7OztXQUlHO1FBQ0gsWUFBTyxHQUFHLEtBQUssRUFBRSxPQUFlLEVBQXVCLEVBQUU7WUFDckQsTUFBTSxLQUFLLEdBQUcsSUFBSSx3QkFBVSxFQUFFLENBQUM7WUFDL0IsS0FBSyxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7WUFDeEIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNCLENBQUMsQ0FBQztJQUNOLENBQUM7Q0FBQTtBQUVZLFFBQUEsUUFBUSxHQUFHLElBQUksUUFBUSxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBHZW5lcmljREFPIH0gZnJvbSBcIi4uLy4uLy4uL2Jhc2UtZGFvXCI7XG5pbXBvcnQgeyBPcmRlck1vZGVsIH0gZnJvbSBcIi4vb3JkZXItbW9kZWxcIjtcblxuY2xhc3MgT3JkZXJEQU8gZXh0ZW5kcyBHZW5lcmljREFPPE9yZGVyTW9kZWw+IHtcbiAgICAvKipcbiAgICAgKiBHZXQgT3JkZXIgYnkgT3JkZXIgSURcbiAgICAgKiBAcGFyYW0gb3JkZXJJZCBPcmRlciBJRFxuICAgICAqIEByZXR1cm5zIE9yZGVyIE1vZGVsXG4gICAgICovXG4gICAgZ2V0QnlJZCA9IGFzeW5jIChvcmRlcklkOiBzdHJpbmcpOiBQcm9taXNlPE9yZGVyTW9kZWw+ID0+IHtcbiAgICAgICAgY29uc3Qgb3JkZXIgPSBuZXcgT3JkZXJNb2RlbCgpO1xuICAgICAgICBvcmRlci5vcmRlcklkID0gb3JkZXJJZDtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0KG9yZGVyKTtcbiAgICB9O1xufVxuXG5leHBvcnQgY29uc3Qgb3JkZXJEYW8gPSBuZXcgT3JkZXJEQU8oKTsiXX0=
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXItZGFvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2N1c3RvbWVyLXVzZXIvb3JkZXItbW9kdWxlL29yZGVyL29yZGVyLWRhby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxnREFBdUQ7QUFDdkQsK0NBQTJDO0FBTzNDLE1BQU0sUUFBUyxTQUFRLHFCQUFzQjtJQUE3Qzs7UUFDSTs7OztXQUlHO1FBQ0gsWUFBTyxHQUFHLEtBQUssRUFBRSxPQUFlLEVBQXVCLEVBQUU7WUFDckQsTUFBTSxLQUFLLEdBQUcsSUFBSSx3QkFBVSxFQUFFLENBQUM7WUFDL0IsS0FBSyxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7WUFDeEIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNCLENBQUMsQ0FBQztRQUVGOzs7Ozs7V0FNRztRQUNILGdCQUFXLEdBQUcsS0FBSyxFQUNmLE1BQWMsRUFDZCxxQkFBK0IsQ0FBQyxVQUFVLEVBQUUsU0FBUyxFQUFFLFdBQVcsQ0FBQyxFQUNqQyxFQUFFO1lBQ3BDLE1BQU0sTUFBTSxHQUFpQixFQUFFLENBQUM7WUFDaEMsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLHdCQUFVLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7WUFDbEcsS0FBSyxNQUFNLEtBQUssSUFBSSxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQztnQkFDakMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFtQixDQUFDLENBQUM7WUFDckMsQ0FBQztZQUNELE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUNyQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLFdBQXFCLENBQUMsQ0FDM0QsQ0FBQztZQUNGLE9BQU8sRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxDQUFDO1FBQ2hELENBQUMsQ0FBQztJQUNOLENBQUM7Q0FBQTtBQUVZLFFBQUEsUUFBUSxHQUFHLElBQUksUUFBUSxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBHZW5lcmljREFPLCBtYXBwZXIgfSBmcm9tIFwiLi4vLi4vLi4vYmFzZS1kYW9cIjtcbmltcG9ydCB7IE9yZGVyTW9kZWwgfSBmcm9tIFwiLi9vcmRlci1tb2RlbFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEdldE9yZGVyc0J5VXNlcklkUmVzcG9uc2Uge1xuICAgIG9yZGVyczogT3JkZXJNb2RlbFtdO1xuICAgIGlzRmlyc3RPcmRlcjogYm9vbGVhbjtcbn1cblxuY2xhc3MgT3JkZXJEQU8gZXh0ZW5kcyBHZW5lcmljREFPPE9yZGVyTW9kZWw+IHtcbiAgICAvKipcbiAgICAgKiBHZXQgT3JkZXIgYnkgT3JkZXIgSURcbiAgICAgKiBAcGFyYW0gb3JkZXJJZCBPcmRlciBJRFxuICAgICAqIEByZXR1cm5zIE9yZGVyIE1vZGVsXG4gICAgICovXG4gICAgZ2V0QnlJZCA9IGFzeW5jIChvcmRlcklkOiBzdHJpbmcpOiBQcm9taXNlPE9yZGVyTW9kZWw+ID0+IHtcbiAgICAgICAgY29uc3Qgb3JkZXIgPSBuZXcgT3JkZXJNb2RlbCgpO1xuICAgICAgICBvcmRlci5vcmRlcklkID0gb3JkZXJJZDtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0KG9yZGVyKTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogR2V0IG9yZGVycyBieSBVc2VyIElEIHdpdGggZmlyc3RPcmRlciBmbGFnLlxuICAgICAqIGZpcnN0T3JkZXIgaXMgdHJ1ZSBpZiBhdCBsZWFzdCBvbmUgb3JkZXIgaGFzIHN0YXR1cyBpbiBmaXJzdE9yZGVyU3RhdHVzZXMuXG4gICAgICogQHBhcmFtIHVzZXJJZCBVc2VyIElEXG4gICAgICogQHBhcmFtIGZpcnN0T3JkZXJTdGF0dXNlcyBTdGF0dXNlcyB0aGF0IGNvdW50IGFzIFwiZmlyc3Qgb3JkZXJcIiAoZGVmYXVsdDogQVBQUk9WRUQsIFBFTkRJTkcsIENPTVBMRVRFRClcbiAgICAgKiBAcmV0dXJucyBPcmRlcnMgYW5kIGZpcnN0T3JkZXIgYm9vbGVhblxuICAgICAqL1xuICAgIGdldEJ5VXNlcklkID0gYXN5bmMgKFxuICAgICAgICB1c2VySWQ6IHN0cmluZyxcbiAgICAgICAgZmlyc3RPcmRlclN0YXR1c2VzOiBzdHJpbmdbXSA9IFtcIkFQUFJPVkVEXCIsIFwiUEVORElOR1wiLCBcIkNPTVBMRVRFRFwiXVxuICAgICk6IFByb21pc2U8R2V0T3JkZXJzQnlVc2VySWRSZXNwb25zZT4gPT4ge1xuICAgICAgICBjb25zdCBvcmRlcnM6IE9yZGVyTW9kZWxbXSA9IFtdO1xuICAgICAgICBjb25zdCByZXN1bHRzID0gYXdhaXQgdGhpcy5wYXJhbGxlbFF1ZXJ5KE9yZGVyTW9kZWwsIFt7IHVzZXJJZCB9XSwgMSwgeyBpbmRleE5hbWU6IFwidXNlckluZGV4XCIgfSk7XG4gICAgICAgIGZvciAoY29uc3Qgb3JkZXIgb2YgcmVzdWx0cy5mbGF0KCkpIHtcbiAgICAgICAgICAgIG9yZGVycy5wdXNoKG9yZGVyIGFzIE9yZGVyTW9kZWwpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGZpcnN0T3JkZXIgPSBvcmRlcnMuc29tZSgob3JkZXIpID0+XG4gICAgICAgICAgICBmaXJzdE9yZGVyU3RhdHVzZXMuaW5jbHVkZXMob3JkZXIub3JkZXJTdGF0dXMgYXMgc3RyaW5nKVxuICAgICAgICApO1xuICAgICAgICByZXR1cm4geyBvcmRlcnMsIGlzRmlyc3RPcmRlcjogZmlyc3RPcmRlciB9O1xuICAgIH07XG59XG5cbmV4cG9ydCBjb25zdCBvcmRlckRhbyA9IG5ldyBPcmRlckRBTygpOyJdfQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cmp-aws-database",
3
- "version": "1.2.0-dev.122",
3
+ "version": "1.2.0-dev.123",
4
4
  "bin": {
5
5
  "craft-my-plate-database": "bin/craft-my-plate-database.js"
6
6
  },