From 8ddf5bf0b75b601582751f017f293a26c74b1815 Mon Sep 17 00:00:00 2001 From: "S. Amir Mohammad Najafi" Date: Sat, 27 May 2023 14:55:31 +0330 Subject: [PATCH 1/5] feat(type/com): ComUserIncOrder --- core/type/src/customer-order-management.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/core/type/src/customer-order-management.ts b/core/type/src/customer-order-management.ts index 6f5477aa5..bdb10d212 100644 --- a/core/type/src/customer-order-management.ts +++ b/core/type/src/customer-order-management.ts @@ -179,6 +179,10 @@ export interface ComUser extends User { priceListName?: string; } +export interface ComUserIncOrder extends ComUser { + orderList: Record; +} + // -- Schema -- export const orderInfoSchema = { From 852d7ccf4278adda574db211ed5ae0baa632e28a Mon Sep 17 00:00:00 2001 From: "S. Amir Mohammad Najafi" Date: Sat, 27 May 2023 15:06:06 +0330 Subject: [PATCH 2/5] feat(com-api): admin user-list-inc-order route --- uniquely/com-api/demo.http | 681 +++++++++--------- uniquely/com-api/src/index.ts | 2 +- uniquely/com-api/src/lib/user-order.ts | 24 + .../src/route/admin-user-list-inc-order.ts | 17 + uniquely/com-api/src/route/put-order.ts | 6 +- uniquely/com-api/src/route/user-list.ts | 16 - 6 files changed, 387 insertions(+), 359 deletions(-) create mode 100644 uniquely/com-api/src/lib/user-order.ts create mode 100644 uniquely/com-api/src/route/admin-user-list-inc-order.ts delete mode 100644 uniquely/com-api/src/route/user-list.ts diff --git a/uniquely/com-api/demo.http b/uniquely/com-api/demo.http index 047b69d6d..d00036b30 100644 --- a/uniquely/com-api/demo.http +++ b/uniquely/com-api/demo.http @@ -1,339 +1,342 @@ -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 -9oJayyfLNlhHg6CrnOVZlw== +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 +uFavsrdnwakdnivzXHR43w== diff --git a/uniquely/com-api/src/index.ts b/uniquely/com-api/src/index.ts index d52fe15ff..72ffa6565 100644 --- a/uniquely/com-api/src/index.ts +++ b/uniquely/com-api/src/index.ts @@ -1,10 +1,10 @@ import {logger} from './lib/config.js'; import './root-user.js'; +import './route/admin-user-list-inc-order.js'; import './route/home.js'; import './route/patch-price-list.js'; import './route/patch-product-list.js'; import './route/patch-user.js'; import './route/put-order.js'; -import './route/user-list.js'; logger.logOther?.('..:: Alwatr Customer Order Management API ::..'); diff --git a/uniquely/com-api/src/lib/user-order.ts b/uniquely/com-api/src/lib/user-order.ts new file mode 100644 index 000000000..13e84307a --- /dev/null +++ b/uniquely/com-api/src/lib/user-order.ts @@ -0,0 +1,24 @@ +import {config} from './config.js'; +import {storageClient} from './storage.js'; + +import type {AlwatrDocumentStorage} from '@alwatr/type'; +import type {ComUserIncOrder, Order} from '@alwatr/type/src/customer-order-management.js'; + +export const getUserOrder = (userId: string): Promise> => { + return storageClient.getStorage(config.privateStorage.userOrderList.replace('${userId}', userId)); +}; + +export const patchUserOrder = (userId: string, order: Order): Promise => { + return storageClient.set(order, config.privateStorage.userOrderList.replace('${userId}', userId)); +}; + +export const getUserListIncOrder = async (): Promise> => { + const userList = (await storageClient.getStorage(config.privateStorage.userList)).data; + + for (const user of Object.values(userList)) { + if (!Object.prototype.hasOwnProperty.call(userList, user.id)) continue; + user.orderList = (await getUserOrder(user.id)).data; + } + + return userList; +}; diff --git a/uniquely/com-api/src/route/admin-user-list-inc-order.ts b/uniquely/com-api/src/route/admin-user-list-inc-order.ts new file mode 100644 index 000000000..723f22f94 --- /dev/null +++ b/uniquely/com-api/src/route/admin-user-list-inc-order.ts @@ -0,0 +1,17 @@ +import {logger} from '../lib/config.js'; +import {nanoServer} from '../lib/server.js'; +import {getUserListIncOrder} from '../lib/user-order.js'; +import {validateUserAuth} from '../lib/validate-user-auth.js'; + +import type {ComUser} from '@alwatr/type/customer-order-management.js'; + +nanoServer.route>('GET', '/admin/user-list-inc-order', async (connection) => { + logger.logMethod?.('get-admin-user-list-inc-order'); + + await validateUserAuth(connection.getUserAuth(), 'user-list/read'); + + return { + ok: true, + data: await getUserListIncOrder(), + }; +}); diff --git a/uniquely/com-api/src/route/put-order.ts b/uniquely/com-api/src/route/put-order.ts index 0a238209b..5f9fa3386 100644 --- a/uniquely/com-api/src/route/put-order.ts +++ b/uniquely/com-api/src/route/put-order.ts @@ -1,6 +1,6 @@ -import {config, logger} from '../lib/config.js'; +import {logger} from '../lib/config.js'; import {nanoServer} from '../lib/server.js'; -import {storageClient} from '../lib/storage.js'; +import {patchUserOrder} from '../lib/user-order.js'; import {validateUserAuth} from '../lib/validate-user-auth.js'; import type {Order} from '@alwatr/type/customer-order-management.js'; @@ -20,7 +20,7 @@ nanoServer.route('PUT', '/order', async (connection) => { order.clientId = clientId; order.remoteAddress = remoteAddress; - order = await storageClient.set(order, config.privateStorage.userOrderList.replace('${userId}', userAuth.id)); + order = await patchUserOrder(userAuth.id, order); return { ok: true, diff --git a/uniquely/com-api/src/route/user-list.ts b/uniquely/com-api/src/route/user-list.ts deleted file mode 100644 index 3b4f8d3fe..000000000 --- a/uniquely/com-api/src/route/user-list.ts +++ /dev/null @@ -1,16 +0,0 @@ -import {config, logger} from '../lib/config.js'; -import {nanoServer} from '../lib/server.js'; -import {storageClient} from '../lib/storage.js'; -import {validateUserAuth} from '../lib/validate-user-auth.js'; - -import type {ComUser} from '@alwatr/type/customer-order-management.js'; - -nanoServer.route>('GET', '/user-list', async (connection) => { - logger.logMethod?.('get-user-list'); - - await validateUserAuth(connection.getUserAuth(), 'user-list/read'); - - const userList = await storageClient.getStorage(config.privateStorage.userList); - - return userList; -}); From 4c4cd2b30e8a597e1be83f176b5e7ffc8b2e9156 Mon Sep 17 00:00:00 2001 From: "S. Amir Mohammad Najafi" Date: Sat, 27 May 2023 15:44:06 +0330 Subject: [PATCH 3/5] chore(com-api): admin route folder --- uniquely/com-api/src/index.ts | 2 +- .../user-list-inc-order.ts} | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) rename uniquely/com-api/src/route/{admin-user-list-inc-order.ts => admin/user-list-inc-order.ts} (63%) diff --git a/uniquely/com-api/src/index.ts b/uniquely/com-api/src/index.ts index 72ffa6565..9dc01e60a 100644 --- a/uniquely/com-api/src/index.ts +++ b/uniquely/com-api/src/index.ts @@ -1,6 +1,6 @@ import {logger} from './lib/config.js'; import './root-user.js'; -import './route/admin-user-list-inc-order.js'; +import './route/admin/user-list-inc-order.js'; import './route/home.js'; import './route/patch-price-list.js'; import './route/patch-product-list.js'; diff --git a/uniquely/com-api/src/route/admin-user-list-inc-order.ts b/uniquely/com-api/src/route/admin/user-list-inc-order.ts similarity index 63% rename from uniquely/com-api/src/route/admin-user-list-inc-order.ts rename to uniquely/com-api/src/route/admin/user-list-inc-order.ts index 723f22f94..e81c4a37f 100644 --- a/uniquely/com-api/src/route/admin-user-list-inc-order.ts +++ b/uniquely/com-api/src/route/admin/user-list-inc-order.ts @@ -1,7 +1,7 @@ -import {logger} from '../lib/config.js'; -import {nanoServer} from '../lib/server.js'; -import {getUserListIncOrder} from '../lib/user-order.js'; -import {validateUserAuth} from '../lib/validate-user-auth.js'; +import {logger} from '../../lib/config.js'; +import {nanoServer} from '../../lib/server.js'; +import {getUserListIncOrder} from '../../lib/user-order.js'; +import {validateUserAuth} from '../../lib/validate-user-auth.js'; import type {ComUser} from '@alwatr/type/customer-order-management.js'; From 91beb27cbe372e6b66c99928e26fa4679b751c23 Mon Sep 17 00:00:00 2001 From: "S. Amir Mohammad Najafi" Date: Sat, 27 May 2023 15:46:43 +0330 Subject: [PATCH 4/5] fix(com-api): user-list-inc-order permission --- core/type/src/customer-order-management.ts | 2 +- uniquely/com-api/src/route/admin/user-list-inc-order.ts | 2 +- uniquely/com-pwa/src/config.ts | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/core/type/src/customer-order-management.ts b/core/type/src/customer-order-management.ts index bdb10d212..fb8a382b8 100644 --- a/core/type/src/customer-order-management.ts +++ b/core/type/src/customer-order-management.ts @@ -41,7 +41,7 @@ export const orderStatusCS = [ ] as const; export type OrderStatus = (typeof orderStatusCS)[number]; -export const userPermissionsCS = ['user/patch', 'price/patch', 'product/patch', 'user-list/read'] as const; +export const userPermissionsCS = ['user/patch', 'price/patch', 'product/patch', 'user-list-inc-order/read'] as const; export type UserPermission = (typeof userPermissionsCS)[number]; // -- Document object -- diff --git a/uniquely/com-api/src/route/admin/user-list-inc-order.ts b/uniquely/com-api/src/route/admin/user-list-inc-order.ts index e81c4a37f..802acbe78 100644 --- a/uniquely/com-api/src/route/admin/user-list-inc-order.ts +++ b/uniquely/com-api/src/route/admin/user-list-inc-order.ts @@ -8,7 +8,7 @@ import type {ComUser} from '@alwatr/type/customer-order-management.js'; nanoServer.route>('GET', '/admin/user-list-inc-order', async (connection) => { logger.logMethod?.('get-admin-user-list-inc-order'); - await validateUserAuth(connection.getUserAuth(), 'user-list/read'); + await validateUserAuth(connection.getUserAuth(), 'user-list-inc-order/read'); return { ok: true, diff --git a/uniquely/com-pwa/src/config.ts b/uniquely/com-pwa/src/config.ts index 339627c4c..2c8aa90b2 100644 --- a/uniquely/com-pwa/src/config.ts +++ b/uniquely/com-pwa/src/config.ts @@ -30,7 +30,7 @@ export const config = { newOrder: apiBaseUrl + 'order', // admin access - userList: apiBaseUrl + 'user-list', + adminUserListIncOrder: apiBaseUrl + 'admin/user-list-inc-order', }, fetchContextOptions: >{ From 4e936d69696ef3778cc3337cb5faaec8215e4e4a Mon Sep 17 00:00:00 2001 From: "S. Ali Mihandoost" Date: Sat, 27 May 2023 15:51:03 +0330 Subject: [PATCH 5/5] fix(com-api): rollback config --- uniquely/com-pwa/src/config.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/uniquely/com-pwa/src/config.ts b/uniquely/com-pwa/src/config.ts index 2c8aa90b2..339627c4c 100644 --- a/uniquely/com-pwa/src/config.ts +++ b/uniquely/com-pwa/src/config.ts @@ -30,7 +30,7 @@ export const config = { newOrder: apiBaseUrl + 'order', // admin access - adminUserListIncOrder: apiBaseUrl + 'admin/user-list-inc-order', + userList: apiBaseUrl + 'user-list', }, fetchContextOptions: >{