@things-factory/integration-marketplace 8.0.0-beta.9 → 8.0.2
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.
- package/dist-server/tsconfig.tsbuildinfo +1 -1
- package/package.json +14 -14
- package/server/controllers/index.ts +9 -0
- package/server/controllers/lazada/apis/cancel-store-order.ts +19 -0
- package/server/controllers/lazada/apis/create-store-product.ts +55 -0
- package/server/controllers/lazada/apis/delete-store-product.ts +16 -0
- package/server/controllers/lazada/apis/echo.ts +14 -0
- package/server/controllers/lazada/apis/get-store-logistics.ts +21 -0
- package/server/controllers/lazada/apis/get-store-order-document.ts +25 -0
- package/server/controllers/lazada/apis/get-store-order-item-transaction-details.ts +65 -0
- package/server/controllers/lazada/apis/get-store-order-items.ts +179 -0
- package/server/controllers/lazada/apis/get-store-order.ts +87 -0
- package/server/controllers/lazada/apis/get-store-orders.ts +127 -0
- package/server/controllers/lazada/apis/get-store-product-brands.ts +27 -0
- package/server/controllers/lazada/apis/get-store-product-categories.ts +14 -0
- package/server/controllers/lazada/apis/get-store-product-category-attributes.ts +16 -0
- package/server/controllers/lazada/apis/get-store-product.ts +42 -0
- package/server/controllers/lazada/apis/get-store-products.ts +84 -0
- package/server/controllers/lazada/apis/get-store-refund-orders.ts +52 -0
- package/server/controllers/lazada/apis/index.ts +24 -0
- package/server/controllers/lazada/apis/set-order-invoice-no.ts +24 -0
- package/server/controllers/lazada/apis/set-store-order-status-delivered.ts +17 -0
- package/server/controllers/lazada/apis/set-store-order-status-failed-delivery.ts +17 -0
- package/server/controllers/lazada/apis/set-store-order-status-packed-by-marketplace.ts +46 -0
- package/server/controllers/lazada/apis/set-store-order-status-ready-to-ship.ts +28 -0
- package/server/controllers/lazada/apis/update-store-product-stock.ts +29 -0
- package/server/controllers/lazada/apis/update-store-product-variation-stock.ts +29 -0
- package/server/controllers/lazada/apis/update-store-product.ts +51 -0
- package/server/controllers/lazada/client/index.ts +3 -0
- package/server/controllers/lazada/client/lazada.ts +142 -0
- package/server/controllers/lazada/client/signature.ts +67 -0
- package/server/controllers/lazada/client/types.ts +30 -0
- package/server/controllers/lazada/client/xml.ts +24 -0
- package/server/controllers/lazada/index.ts +8 -0
- package/server/controllers/lazada/platform-action.ts +35 -0
- package/server/controllers/magento/apis/create-order-comment.ts +32 -0
- package/server/controllers/magento/apis/create-order-refund.ts +20 -0
- package/server/controllers/magento/apis/create-order-ship.ts +43 -0
- package/server/controllers/magento/apis/echo.ts +14 -0
- package/server/controllers/magento/apis/get-store-order.ts +15 -0
- package/server/controllers/magento/apis/get-store-orders.ts +159 -0
- package/server/controllers/magento/apis/get-store-product-categories.ts +43 -0
- package/server/controllers/magento/apis/get-store-product-variations.ts +17 -0
- package/server/controllers/magento/apis/get-store-product.ts +44 -0
- package/server/controllers/magento/apis/get-store-products.ts +120 -0
- package/server/controllers/magento/apis/get-store-stock-item.ts +66 -0
- package/server/controllers/magento/apis/index.ts +16 -0
- package/server/controllers/magento/apis/update-order-status.ts +56 -0
- package/server/controllers/magento/apis/update-store-product-price.ts +24 -0
- package/server/controllers/magento/apis/update-store-product-stock.ts +42 -0
- package/server/controllers/magento/apis/update-store-product-variation-price.ts +24 -0
- package/server/controllers/magento/apis/update-store-product-variation-stock.ts +42 -0
- package/server/controllers/magento/index.ts +8 -0
- package/server/controllers/magento/magento.ts +202 -0
- package/server/controllers/magento/platform-action.ts +44 -0
- package/server/controllers/shopee/apis/accept-store-order-cancellation.ts +22 -0
- package/server/controllers/shopee/apis/cancel-store-order.ts +25 -0
- package/server/controllers/shopee/apis/create-store-product-variations.ts +33 -0
- package/server/controllers/shopee/apis/create-store-product.ts +57 -0
- package/server/controllers/shopee/apis/delete-store-product.ts +19 -0
- package/server/controllers/shopee/apis/echo.ts +14 -0
- package/server/controllers/shopee/apis/get-address.ts +32 -0
- package/server/controllers/shopee/apis/get-branch-list.ts +30 -0
- package/server/controllers/shopee/apis/get-logistics-param.ts +71 -0
- package/server/controllers/shopee/apis/get-store-logistics.ts +21 -0
- package/server/controllers/shopee/apis/get-store-order-document.ts +27 -0
- package/server/controllers/shopee/apis/get-store-order-items.ts +47 -0
- package/server/controllers/shopee/apis/get-store-order-payout-dates.ts +29 -0
- package/server/controllers/shopee/apis/get-store-order-transaction-details.ts +29 -0
- package/server/controllers/shopee/apis/get-store-order.ts +136 -0
- package/server/controllers/shopee/apis/get-store-orders.ts +39 -0
- package/server/controllers/shopee/apis/get-store-product-categories.ts +19 -0
- package/server/controllers/shopee/apis/get-store-product-category-attributes.ts +18 -0
- package/server/controllers/shopee/apis/get-store-product.ts +84 -0
- package/server/controllers/shopee/apis/get-store-products.ts +30 -0
- package/server/controllers/shopee/apis/get-store-refund-order-details.ts +41 -0
- package/server/controllers/shopee/apis/get-store-refund-orders.ts +47 -0
- package/server/controllers/shopee/apis/get-time-slot.ts +25 -0
- package/server/controllers/shopee/apis/index.ts +30 -0
- package/server/controllers/shopee/apis/init-logistics.ts +39 -0
- package/server/controllers/shopee/apis/reject-store-order-cancellation.ts +22 -0
- package/server/controllers/shopee/apis/split-order.ts +44 -0
- package/server/controllers/shopee/apis/update-store-product-stock.ts +24 -0
- package/server/controllers/shopee/apis/update-store-product-variation-stock.ts +21 -0
- package/server/controllers/shopee/apis/update-store-product.ts +85 -0
- package/server/controllers/shopee/apis2/create-shipping-document.ts +27 -0
- package/server/controllers/shopee/apis2/echo.ts +14 -0
- package/server/controllers/shopee/apis2/get-logistics-param.ts +66 -0
- package/server/controllers/shopee/apis2/get-shipping-document-result.ts +21 -0
- package/server/controllers/shopee/apis2/get-store-logistics.ts +23 -0
- package/server/controllers/shopee/apis2/get-store-order-by-batch.ts +97 -0
- package/server/controllers/shopee/apis2/get-store-order-document.ts +39 -0
- package/server/controllers/shopee/apis2/get-store-order-payout-dates.ts +33 -0
- package/server/controllers/shopee/apis2/get-store-order-transaction-details.ts +28 -0
- package/server/controllers/shopee/apis2/get-store-order.ts +93 -0
- package/server/controllers/shopee/apis2/get-store-orders.ts +40 -0
- package/server/controllers/shopee/apis2/get-store-product-variations.ts +17 -0
- package/server/controllers/shopee/apis2/get-store-product.ts +105 -0
- package/server/controllers/shopee/apis2/get-store-products.ts +28 -0
- package/server/controllers/shopee/apis2/get-store-refund-order-details.ts +39 -0
- package/server/controllers/shopee/apis2/get-store-refund-orders.ts +37 -0
- package/server/controllers/shopee/apis2/get-tracking-number.ts +17 -0
- package/server/controllers/shopee/apis2/index.ts +20 -0
- package/server/controllers/shopee/apis2/init-logistics.ts +39 -0
- package/server/controllers/shopee/apis2/update-store-product-stock.ts +26 -0
- package/server/controllers/shopee/apis2/update-store-product-variation-stock.ts +28 -0
- package/server/controllers/shopee/index.ts +16 -0
- package/server/controllers/shopee/platform-action.ts +58 -0
- package/server/controllers/shopee/refresh-access-token.ts +78 -0
- package/server/controllers/shopee/shopee.ts +191 -0
- package/server/controllers/shopify/apis/echo.ts +14 -0
- package/server/controllers/shopify/apis/get-airway-bill.ts +17 -0
- package/server/controllers/shopify/apis/get-inventory-level.ts +17 -0
- package/server/controllers/shopify/apis/get-store-order.ts +172 -0
- package/server/controllers/shopify/apis/get-store-orders.ts +290 -0
- package/server/controllers/shopify/apis/get-store-product-categories.ts +19 -0
- package/server/controllers/shopify/apis/get-store-product-category-attributes.ts +18 -0
- package/server/controllers/shopify/apis/get-store-product-variation-stock.ts +17 -0
- package/server/controllers/shopify/apis/get-store-products-count.ts +14 -0
- package/server/controllers/shopify/apis/get-store-products.ts +177 -0
- package/server/controllers/shopify/apis/index.ts +13 -0
- package/server/controllers/shopify/apis/set-store-order-status-ready-to-ship.ts +31 -0
- package/server/controllers/shopify/apis/update-order-status.ts +32 -0
- package/server/controllers/shopify/apis/update-store-product-price.ts +26 -0
- package/server/controllers/shopify/apis/update-store-product-stock.ts +20 -0
- package/server/controllers/shopify/apis/update-store-product-variation-price.ts +26 -0
- package/server/controllers/shopify/apis/update-store-product-variation-stock.ts +20 -0
- package/server/controllers/shopify/index.ts +8 -0
- package/server/controllers/shopify/platform-action.ts +43 -0
- package/server/controllers/shopify/shopify.ts +148 -0
- package/server/controllers/store-api/decorators.ts +44 -0
- package/server/controllers/store-api/index.ts +209 -0
- package/server/controllers/store-api/types.ts +0 -0
- package/server/controllers/tiktok/apis/echo.ts +14 -0
- package/server/controllers/tiktok/apis/get-store-order-document.ts +26 -0
- package/server/controllers/tiktok/apis/get-store-order-package.ts +46 -0
- package/server/controllers/tiktok/apis/get-store-order-packages.ts +43 -0
- package/server/controllers/tiktok/apis/get-store-order.ts +176 -0
- package/server/controllers/tiktok/apis/get-store-orders.ts +55 -0
- package/server/controllers/tiktok/apis/get-store-product-attributes.ts +29 -0
- package/server/controllers/tiktok/apis/get-store-product-categories.ts +27 -0
- package/server/controllers/tiktok/apis/get-store-product.ts +95 -0
- package/server/controllers/tiktok/apis/get-store-products.ts +45 -0
- package/server/controllers/tiktok/apis/index.ts +13 -0
- package/server/controllers/tiktok/apis/update-order-status.ts +24 -0
- package/server/controllers/tiktok/apis/update-store-product-variation-price.ts +24 -0
- package/server/controllers/tiktok/apis/update-store-product-variation-stock.ts +28 -0
- package/server/controllers/tiktok/client/index.ts +2 -0
- package/server/controllers/tiktok/client/signature.ts +78 -0
- package/server/controllers/tiktok/client/tiktok.ts +150 -0
- package/server/controllers/tiktok/client/types.ts +20 -0
- package/server/controllers/tiktok/index.ts +8 -0
- package/server/controllers/tiktok/platform-action.ts +72 -0
- package/server/controllers/woocommerce/apis/create-order-note.ts +17 -0
- package/server/controllers/woocommerce/apis/echo.ts +14 -0
- package/server/controllers/woocommerce/apis/get-customer-info.ts +18 -0
- package/server/controllers/woocommerce/apis/get-store-order.ts +116 -0
- package/server/controllers/woocommerce/apis/get-store-orders.ts +190 -0
- package/server/controllers/woocommerce/apis/get-store-product-categories.ts +18 -0
- package/server/controllers/woocommerce/apis/get-store-product-variations.ts +16 -0
- package/server/controllers/woocommerce/apis/get-store-products.ts +135 -0
- package/server/controllers/woocommerce/apis/index.ts +19 -0
- package/server/controllers/woocommerce/apis/set-store-order-status-ready-to-ship.ts +17 -0
- package/server/controllers/woocommerce/apis/update-order-status.ts +40 -0
- package/server/controllers/woocommerce/apis/update-product-attribute.ts +20 -0
- package/server/controllers/woocommerce/apis/update-store-product-price.ts +20 -0
- package/server/controllers/woocommerce/apis/update-store-product-stock.ts +17 -0
- package/server/controllers/woocommerce/apis/update-store-product-variant-price.ts +17 -0
- package/server/controllers/woocommerce/apis/update-store-product-variant-stock.ts +18 -0
- package/server/controllers/woocommerce/apis/update-store-product-variation-price.ts +20 -0
- package/server/controllers/woocommerce/apis/update-store-product-variation-stock.ts +20 -0
- package/server/controllers/woocommerce/index.ts +8 -0
- package/server/controllers/woocommerce/platform-action.ts +48 -0
- package/server/controllers/woocommerce/woocommerce.ts +104 -0
- package/server/controllers/zalora/apis/echo.ts +14 -0
- package/server/controllers/zalora/apis/get-airway-bill.ts +17 -0
- package/server/controllers/zalora/apis/get-store-order-items.ts +17 -0
- package/server/controllers/zalora/apis/get-store-order.ts +17 -0
- package/server/controllers/zalora/apis/get-store-orders.ts +21 -0
- package/server/controllers/zalora/apis/get-store-product-categories.ts +20 -0
- package/server/controllers/zalora/apis/get-store-product-category-attributes.ts +18 -0
- package/server/controllers/zalora/apis/get-store-products.ts +20 -0
- package/server/controllers/zalora/apis/index.ts +8 -0
- package/server/controllers/zalora/index.ts +8 -0
- package/server/controllers/zalora/platform-action.ts +18 -0
- package/server/controllers/zalora/zalora/index.ts +70 -0
- package/server/controllers/zalora/zalora/signature.ts +37 -0
- package/server/controllers/zalora/zalora/xml.ts +24 -0
- package/server/engine/connector/index.ts +3 -0
- package/server/engine/connector/lazada-connector.ts +49 -0
- package/server/engine/connector/marketplace-connector.ts +33 -0
- package/server/engine/connector/shopee-connector.ts +46 -0
- package/server/engine/index.ts +2 -0
- package/server/engine/task/index.ts +4 -0
- package/server/engine/task/lazada-get.ts +48 -0
- package/server/engine/task/lazada-post.ts +46 -0
- package/server/engine/task/marketplace-api.ts +72 -0
- package/server/engine/task/shopee-post.ts +51 -0
- package/server/entities/index.ts +8 -0
- package/server/entities/marketplace-distributor.ts +42 -0
- package/server/entities/marketplace-setting.ts +49 -0
- package/server/entities/marketplace-store.ts +100 -0
- package/server/entities/marketplace-transporter.ts +46 -0
- package/server/graphql/constants/index.ts +1 -0
- package/server/graphql/constants/store.ts +5 -0
- package/server/graphql/index.ts +9 -0
- package/server/graphql/resolvers/index.ts +6 -0
- package/server/graphql/resolvers/marketplace-distributor/create-marketplace-distributor.ts +15 -0
- package/server/graphql/resolvers/marketplace-distributor/delete-marketplace-distributor.ts +13 -0
- package/server/graphql/resolvers/marketplace-distributor/delete-marketplace-distributors.ts +18 -0
- package/server/graphql/resolvers/marketplace-distributor/index.ts +19 -0
- package/server/graphql/resolvers/marketplace-distributor/marketplace-distributor-query.ts +57 -0
- package/server/graphql/resolvers/marketplace-distributor/update-marketplace-distributor.ts +22 -0
- package/server/graphql/resolvers/marketplace-distributor/update-multiple-marketplace-distributor.ts +49 -0
- package/server/graphql/resolvers/marketplace-setting/create-marketplace-setting.ts +16 -0
- package/server/graphql/resolvers/marketplace-setting/delete-marketplace-setting.ts +13 -0
- package/server/graphql/resolvers/marketplace-setting/delete-marketplace-settings.ts +18 -0
- package/server/graphql/resolvers/marketplace-setting/index.ts +19 -0
- package/server/graphql/resolvers/marketplace-setting/marketplace-setting-query.ts +56 -0
- package/server/graphql/resolvers/marketplace-setting/update-marketplace-setting.ts +32 -0
- package/server/graphql/resolvers/marketplace-setting/update-multiple-marketplace-setting.ts +49 -0
- package/server/graphql/resolvers/marketplace-store/create-marketplace-store.ts +20 -0
- package/server/graphql/resolvers/marketplace-store/delete-marketplace-store.ts +21 -0
- package/server/graphql/resolvers/marketplace-store/delete-marketplace-stores.ts +26 -0
- package/server/graphql/resolvers/marketplace-store/index.ts +40 -0
- package/server/graphql/resolvers/marketplace-store/lazada/deactivate-lazada-store.ts +28 -0
- package/server/graphql/resolvers/marketplace-store/lazada/generate-lazada-access-token.ts +61 -0
- package/server/graphql/resolvers/marketplace-store/lazada/get-lazada-auth-url.ts +9 -0
- package/server/graphql/resolvers/marketplace-store/lazada/index.ts +12 -0
- package/server/graphql/resolvers/marketplace-store/magento/activate-magento-store.ts +82 -0
- package/server/graphql/resolvers/marketplace-store/magento/deactivate-magento-store.ts +27 -0
- package/server/graphql/resolvers/marketplace-store/magento/get-magento-auth-url.ts +12 -0
- package/server/graphql/resolvers/marketplace-store/magento/index.ts +12 -0
- package/server/graphql/resolvers/marketplace-store/marketplace-store.ts +14 -0
- package/server/graphql/resolvers/marketplace-store/marketplace-stores.ts +18 -0
- package/server/graphql/resolvers/marketplace-store/shopee/deactivate-shopee-store.ts +28 -0
- package/server/graphql/resolvers/marketplace-store/shopee/generate-shopee-access-token.ts +96 -0
- package/server/graphql/resolvers/marketplace-store/shopee/get-shopee-auth-url.ts +18 -0
- package/server/graphql/resolvers/marketplace-store/shopee/index.ts +13 -0
- package/server/graphql/resolvers/marketplace-store/shopify/deactivate-shopify-store.ts +29 -0
- package/server/graphql/resolvers/marketplace-store/shopify/get-shopify-auth-url.ts +26 -0
- package/server/graphql/resolvers/marketplace-store/shopify/index.ts +11 -0
- package/server/graphql/resolvers/marketplace-store/update-marketplace-store.ts +19 -0
- package/server/graphql/resolvers/marketplace-store/update-multiple-marketplace-store.ts +46 -0
- package/server/graphql/resolvers/marketplace-store/woocommerce/deactivate-woocommerce-store.ts +20 -0
- package/server/graphql/resolvers/marketplace-store/woocommerce/get-woocommerce-auth-url.ts +14 -0
- package/server/graphql/resolvers/marketplace-store/woocommerce/index.ts +10 -0
- package/server/graphql/resolvers/marketplace-store/zalora/deactivate-zalora-store.ts +28 -0
- package/server/graphql/resolvers/marketplace-store/zalora/generate-zalora-access-token.ts +55 -0
- package/server/graphql/resolvers/marketplace-store/zalora/index.ts +9 -0
- package/server/graphql/resolvers/marketplace-transporter/create-marketplace-transporter.ts +21 -0
- package/server/graphql/resolvers/marketplace-transporter/delete-marketplace-transporter.ts +13 -0
- package/server/graphql/resolvers/marketplace-transporter/delete-marketplace-transporters.ts +18 -0
- package/server/graphql/resolvers/marketplace-transporter/index.ts +19 -0
- package/server/graphql/resolvers/marketplace-transporter/marketplace-transporter-query.ts +60 -0
- package/server/graphql/resolvers/marketplace-transporter/update-marketplace-transporter.ts +25 -0
- package/server/graphql/resolvers/marketplace-transporter/update-multiple-marketplace-transporter.ts +49 -0
- package/server/graphql/resolvers/store-order/accept-store-order-cancellation.ts +9 -0
- package/server/graphql/resolvers/store-order/cancel-store-order.ts +8 -0
- package/server/graphql/resolvers/store-order/get-store-order-document.ts +8 -0
- package/server/graphql/resolvers/store-order/get-store-order-items.ts +8 -0
- package/server/graphql/resolvers/store-order/get-store-order.ts +8 -0
- package/server/graphql/resolvers/store-order/get-store-orders.ts +13 -0
- package/server/graphql/resolvers/store-order/index.ts +23 -0
- package/server/graphql/resolvers/store-order/reject-store-order-cancellation.ts +9 -0
- package/server/graphql/resolvers/store-order/set-store-order-status-packed-by-marketplace.ts +9 -0
- package/server/graphql/resolvers/store-order/set-store-order-status-ready-to-ship.ts +10 -0
- package/server/graphql/resolvers/store-product/create-store-product-variations.ts +9 -0
- package/server/graphql/resolvers/store-product/create-store-product.ts +8 -0
- package/server/graphql/resolvers/store-product/delete-store-product.ts +8 -0
- package/server/graphql/resolvers/store-product/get-store-product-brands.ts +14 -0
- package/server/graphql/resolvers/store-product/get-store-product-categories.ts +8 -0
- package/server/graphql/resolvers/store-product/get-store-product-category-attributes.ts +11 -0
- package/server/graphql/resolvers/store-product/get-store-product.ts +8 -0
- package/server/graphql/resolvers/store-product/get-store-products.ts +13 -0
- package/server/graphql/resolvers/store-product/index.ts +25 -0
- package/server/graphql/resolvers/store-product/update-store-product.ts +8 -0
- package/server/graphql/types/index.ts +6 -0
- package/server/graphql/types/marketplace-distributor/index.ts +26 -0
- package/server/graphql/types/marketplace-distributor/marketplace-distributor-list.ts +8 -0
- package/server/graphql/types/marketplace-distributor/marketplace-distributor-patch.ts +11 -0
- package/server/graphql/types/marketplace-distributor/marketplace-distributor.ts +16 -0
- package/server/graphql/types/marketplace-distributor/new-marketplace-distributor.ts +9 -0
- package/server/graphql/types/marketplace-setting/index.ts +22 -0
- package/server/graphql/types/marketplace-setting/marketplace-setting-list.ts +8 -0
- package/server/graphql/types/marketplace-setting/marketplace-setting-patch.ts +12 -0
- package/server/graphql/types/marketplace-setting/marketplace-setting.ts +17 -0
- package/server/graphql/types/marketplace-setting/new-marketplace-setting.ts +11 -0
- package/server/graphql/types/marketplace-store/index.ts +38 -0
- package/server/graphql/types/marketplace-store/marketplace-store-list.ts +8 -0
- package/server/graphql/types/marketplace-store/marketplace-store-patch.ts +21 -0
- package/server/graphql/types/marketplace-store/marketplace-store.ts +28 -0
- package/server/graphql/types/marketplace-store/new-marketplace-store.ts +19 -0
- package/server/graphql/types/marketplace-transporter/index.ts +24 -0
- package/server/graphql/types/marketplace-transporter/marketplace-transporter-list.ts +8 -0
- package/server/graphql/types/marketplace-transporter/marketplace-transporter-patch.ts +13 -0
- package/server/graphql/types/marketplace-transporter/marketplace-transporter.ts +17 -0
- package/server/graphql/types/marketplace-transporter/new-marketplace-transporter.ts +11 -0
- package/server/graphql/types/store-order/index.ts +23 -0
- package/server/graphql/types/store-order/new-store-order.ts +8 -0
- package/server/graphql/types/store-order/store-order-list.ts +8 -0
- package/server/graphql/types/store-order/store-order-patch.ts +10 -0
- package/server/graphql/types/store-order/store-order.ts +14 -0
- package/server/graphql/types/store-product/index.ts +23 -0
- package/server/graphql/types/store-product/new-store-product.ts +8 -0
- package/server/graphql/types/store-product/store-product-list.ts +8 -0
- package/server/graphql/types/store-product/store-product-patch.ts +10 -0
- package/server/graphql/types/store-product/store-product.ts +14 -0
- package/server/index.ts +9 -0
- package/server/migrations/index.ts +9 -0
- package/server/routers/magento-private-router.ts +192 -0
- package/server/routers/magento-public-router.ts +38 -0
- package/server/routers/shopify-install-private-router.ts +95 -0
- package/server/routers/shopify-install-public-router.ts +241 -0
- package/server/routers/shopify-private-router.ts +78 -0
- package/server/routers/shopify-public-router.ts +182 -0
- package/server/routers/woocommerce-router.ts +70 -0
- package/server/routes.ts +21 -0
@@ -0,0 +1,28 @@
|
|
1
|
+
import { getRepository } from '@things-factory/shell'
|
2
|
+
|
3
|
+
import { MarketplaceStore } from '../../../../entities'
|
4
|
+
import { STORE_STATUS } from '../../../constants'
|
5
|
+
|
6
|
+
export const deactivateShopeeStore = {
|
7
|
+
async deactivateShopeeStore(_: any, { name }, context: ResolverContext) {
|
8
|
+
const repository = getRepository(MarketplaceStore)
|
9
|
+
const marketplaceStore: any = await repository.findOne({
|
10
|
+
where: { domain: { id: context.state.domain.id }, name }
|
11
|
+
})
|
12
|
+
|
13
|
+
var patch = {
|
14
|
+
storeId: '',
|
15
|
+
accessToken: '',
|
16
|
+
refreshToken: '',
|
17
|
+
accessInfo: '',
|
18
|
+
countryCode: '',
|
19
|
+
status: STORE_STATUS.INACTIVE
|
20
|
+
}
|
21
|
+
|
22
|
+
return await repository.save({
|
23
|
+
...marketplaceStore,
|
24
|
+
...patch,
|
25
|
+
updater: context.state.user
|
26
|
+
})
|
27
|
+
}
|
28
|
+
}
|
@@ -0,0 +1,96 @@
|
|
1
|
+
import crypto from 'crypto'
|
2
|
+
import Debug from 'debug'
|
3
|
+
import fetch from 'node-fetch'
|
4
|
+
import { v4 as uuidv4 } from 'uuid'
|
5
|
+
|
6
|
+
import { config } from '@things-factory/env'
|
7
|
+
|
8
|
+
import { MarketplaceSetting, MarketplaceStore } from '../../../../entities'
|
9
|
+
import { STORE_STATUS } from '../../../constants'
|
10
|
+
|
11
|
+
const shopeeConfig = config.get('marketplaceIntegrationShopee', {})
|
12
|
+
const { partnerId, partnerKey, isUAT } = shopeeConfig
|
13
|
+
|
14
|
+
const debug = Debug('things-factory:integration-marketplace:generate-shopee-access-token')
|
15
|
+
|
16
|
+
export const generateShopeeAccessToken = {
|
17
|
+
async generateShopeeAccessToken(_: any, { id, code, shopId }, context: ResolverContext): Promise<MarketplaceStore> {
|
18
|
+
const { domain, tx, user } = context.state
|
19
|
+
const repository = tx.getRepository(MarketplaceStore)
|
20
|
+
const marketplaceStore: MarketplaceStore = await repository.findOne({
|
21
|
+
where: { domain: { id: context.state.domain.id }, id }
|
22
|
+
})
|
23
|
+
|
24
|
+
const timestamp = Math.round(new Date().getTime() / 1000)
|
25
|
+
|
26
|
+
const host = `https://partner${isUAT ? '.test-stable' : ''}.shopeemobile.com`
|
27
|
+
const getTokenPath = '/api/v2/auth/token/get'
|
28
|
+
const signature = crypto
|
29
|
+
.createHmac('sha256', partnerKey)
|
30
|
+
.update(partnerId + getTokenPath + timestamp + shopId)
|
31
|
+
.digest('hex')
|
32
|
+
|
33
|
+
let authUrl = `${host}${getTokenPath}`
|
34
|
+
authUrl += `?partner_id=${Number(partnerId)}`
|
35
|
+
authUrl += `&shop_id=${shopId}`
|
36
|
+
authUrl += `×tamp=${timestamp}`
|
37
|
+
authUrl += `&sign=${signature}`
|
38
|
+
|
39
|
+
const data: any = {
|
40
|
+
code,
|
41
|
+
shop_id: Number(shopId),
|
42
|
+
partner_id: Number(partnerId)
|
43
|
+
}
|
44
|
+
|
45
|
+
const jsondata = JSON.stringify(data)
|
46
|
+
|
47
|
+
const response = await fetch(`${authUrl}`, {
|
48
|
+
method: 'post',
|
49
|
+
headers: {
|
50
|
+
'Content-Type': 'application/json'
|
51
|
+
},
|
52
|
+
body: jsondata
|
53
|
+
})
|
54
|
+
|
55
|
+
if (!response.ok) {
|
56
|
+
debug('response result', await response.text())
|
57
|
+
throw new Error(`unexpected error with response code - ${response.status}`)
|
58
|
+
}
|
59
|
+
|
60
|
+
const result = await response.json()
|
61
|
+
debug('response result', result)
|
62
|
+
|
63
|
+
var patch = {
|
64
|
+
accessToken: result.access_token,
|
65
|
+
refreshToken: result.refresh_token,
|
66
|
+
accessInfo: JSON.stringify(result, null, 2),
|
67
|
+
storeId: String(shopId),
|
68
|
+
status: STORE_STATUS.ACTIVE
|
69
|
+
}
|
70
|
+
|
71
|
+
const marketplaceSettingCategories: any[] = ['stock_allocation', 'marketplace_order_max_weight']
|
72
|
+
|
73
|
+
marketplaceSettingCategories.forEach(async category => {
|
74
|
+
const foundMarketplaceSetting: MarketplaceSetting = await tx.getRepository(MarketplaceSetting).findOne({
|
75
|
+
where: { marketplaceStore: { id: marketplaceStore.id }, domain: { id: domain.id }, category }
|
76
|
+
})
|
77
|
+
|
78
|
+
if (!foundMarketplaceSetting) {
|
79
|
+
const marketplaceSetting = new MarketplaceSetting()
|
80
|
+
marketplaceSetting.name = uuidv4()
|
81
|
+
marketplaceSetting.marketplaceStore = marketplaceStore
|
82
|
+
marketplaceSetting.value = '100'
|
83
|
+
marketplaceSetting.category = category
|
84
|
+
marketplaceSetting.domain = domain
|
85
|
+
marketplaceSetting.creator = user
|
86
|
+
await tx.getRepository(MarketplaceSetting).save(marketplaceSetting)
|
87
|
+
}
|
88
|
+
})
|
89
|
+
|
90
|
+
return await repository.save({
|
91
|
+
...marketplaceStore,
|
92
|
+
...patch,
|
93
|
+
updater: context.state.user
|
94
|
+
})
|
95
|
+
}
|
96
|
+
}
|
@@ -0,0 +1,18 @@
|
|
1
|
+
import { Shopee } from '../../../../controllers/shopee/shopee'
|
2
|
+
|
3
|
+
import { config } from '@things-factory/env'
|
4
|
+
const shopeeConfig = config.get('marketplaceIntegrationShopee', {})
|
5
|
+
const { partnerId, partnerKey, isUAT } = shopeeConfig
|
6
|
+
|
7
|
+
export const getShopeeAuthURL = {
|
8
|
+
async getShopeeAuthURL(_: any, { redirectUrl, cancel = false }, context: ResolverContext) {
|
9
|
+
const client = new Shopee({
|
10
|
+
isUAT,
|
11
|
+
partner_id: partnerId,
|
12
|
+
partner_key: partnerKey,
|
13
|
+
redirect_uri: redirectUrl
|
14
|
+
})
|
15
|
+
|
16
|
+
return client.buildAuthURL(cancel)
|
17
|
+
}
|
18
|
+
}
|
@@ -0,0 +1,13 @@
|
|
1
|
+
import { getShopeeAuthURL } from './get-shopee-auth-url'
|
2
|
+
|
3
|
+
import { deactivateShopeeStore } from './deactivate-shopee-store'
|
4
|
+
import { generateShopeeAccessToken } from './generate-shopee-access-token'
|
5
|
+
|
6
|
+
export const Query = {
|
7
|
+
...getShopeeAuthURL
|
8
|
+
}
|
9
|
+
|
10
|
+
export const Mutation = {
|
11
|
+
...generateShopeeAccessToken,
|
12
|
+
...deactivateShopeeStore
|
13
|
+
} as any
|
@@ -0,0 +1,29 @@
|
|
1
|
+
import { getRepository } from '@things-factory/shell'
|
2
|
+
|
3
|
+
import { MarketplaceStore } from '../../../../entities'
|
4
|
+
import { STORE_STATUS } from '../../../constants'
|
5
|
+
|
6
|
+
export const deactivateShopifyStore = {
|
7
|
+
async deactivateShopifyStore(_: any, { name }, context: ResolverContext) {
|
8
|
+
const { domain, user } = context.state
|
9
|
+
|
10
|
+
const repository = getRepository(MarketplaceStore)
|
11
|
+
const marketplaceStore: any = await repository.findOne({
|
12
|
+
where: { domain: { id: domain.id }, name }
|
13
|
+
})
|
14
|
+
|
15
|
+
var patch = {
|
16
|
+
accessToken: '',
|
17
|
+
refreshToken: '',
|
18
|
+
accessInfo: '',
|
19
|
+
countryCode: '',
|
20
|
+
status: STORE_STATUS.INACTIVE
|
21
|
+
}
|
22
|
+
|
23
|
+
return await repository.save({
|
24
|
+
...marketplaceStore,
|
25
|
+
...patch,
|
26
|
+
updater: user
|
27
|
+
})
|
28
|
+
}
|
29
|
+
}
|
@@ -0,0 +1,26 @@
|
|
1
|
+
import { VerificationToken, VerificationTokenType } from '@things-factory/auth-base'
|
2
|
+
import { config } from '@things-factory/env'
|
3
|
+
import { getRepository } from '@things-factory/shell'
|
4
|
+
|
5
|
+
import { Shopify } from '../../../../controllers/shopify'
|
6
|
+
|
7
|
+
const shopifyConfig = config.get('marketplaceIntegrationShopify', {})
|
8
|
+
const { apiKey, apiSecret } = shopifyConfig
|
9
|
+
|
10
|
+
export const getShopifyAuthURL = {
|
11
|
+
async getShopifyAuthURL(_: any, { marketplaceStoreId, storeId, redirectUrl }, context: ResolverContext) {
|
12
|
+
const { user } = context.state
|
13
|
+
const shopify = new Shopify({ apiKey, apiSecret, shop: storeId })
|
14
|
+
|
15
|
+
/* generate verification-token as a nonce */
|
16
|
+
const nonce = shopify.makeVerificationTokenForNonce()
|
17
|
+
await getRepository(VerificationToken).save({
|
18
|
+
userId: user.id,
|
19
|
+
token: nonce,
|
20
|
+
type: VerificationTokenType.REQUEST_ACCESS_TOKEN,
|
21
|
+
suppliment: marketplaceStoreId
|
22
|
+
})
|
23
|
+
|
24
|
+
return shopify.buildAuthURL(redirectUrl, nonce)
|
25
|
+
}
|
26
|
+
}
|
@@ -0,0 +1,19 @@
|
|
1
|
+
import { getRepository } from '@things-factory/shell'
|
2
|
+
|
3
|
+
import { MarketplaceStore } from '../../../entities'
|
4
|
+
|
5
|
+
export const updateMarketplaceStore = {
|
6
|
+
async updateMarketplaceStore(_: any, { name, patch }, context: ResolverContext) {
|
7
|
+
const { domain, user } = context.state
|
8
|
+
const repository = getRepository(MarketplaceStore)
|
9
|
+
const marketplaceStore: any = await repository.findOne({
|
10
|
+
where: { domain: { id: domain.id }, name }
|
11
|
+
})
|
12
|
+
|
13
|
+
return await repository.save({
|
14
|
+
...marketplaceStore,
|
15
|
+
...patch,
|
16
|
+
updater: user
|
17
|
+
})
|
18
|
+
}
|
19
|
+
}
|
@@ -0,0 +1,46 @@
|
|
1
|
+
import { getRepository } from '@things-factory/shell'
|
2
|
+
|
3
|
+
import { MarketplaceStore } from '../../../entities'
|
4
|
+
|
5
|
+
export const updateMultipleMarketplaceStore = {
|
6
|
+
async updateMultipleMarketplaceStore(_: any, { patches }, context: ResolverContext) {
|
7
|
+
const { domain, user } = context.state
|
8
|
+
|
9
|
+
let results = []
|
10
|
+
const _createRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === '+')
|
11
|
+
const _updateRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === 'M')
|
12
|
+
const marketplaceStoreRepo = getRepository(MarketplaceStore)
|
13
|
+
|
14
|
+
if (_createRecords.length > 0) {
|
15
|
+
for (let i = 0; i < _createRecords.length; i++) {
|
16
|
+
const newRecord = _createRecords[i]
|
17
|
+
|
18
|
+
const result = await marketplaceStoreRepo.save({
|
19
|
+
...newRecord,
|
20
|
+
domain,
|
21
|
+
creator: user,
|
22
|
+
updater: user
|
23
|
+
})
|
24
|
+
|
25
|
+
results.push({ ...result, cuFlag: '+' })
|
26
|
+
}
|
27
|
+
}
|
28
|
+
|
29
|
+
if (_updateRecords.length > 0) {
|
30
|
+
for (let i = 0; i < _updateRecords.length; i++) {
|
31
|
+
const newRecord = _updateRecords[i]
|
32
|
+
const marketplaceStore = await marketplaceStoreRepo.findOneBy({ id: newRecord.id })
|
33
|
+
|
34
|
+
const result = await marketplaceStoreRepo.save({
|
35
|
+
...marketplaceStore,
|
36
|
+
...newRecord,
|
37
|
+
updater: user
|
38
|
+
})
|
39
|
+
|
40
|
+
results.push({ ...result, cuFlag: 'M' })
|
41
|
+
}
|
42
|
+
}
|
43
|
+
|
44
|
+
return results
|
45
|
+
}
|
46
|
+
}
|
package/server/graphql/resolvers/marketplace-store/woocommerce/deactivate-woocommerce-store.ts
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
import { getRepository } from '@things-factory/shell'
|
2
|
+
|
3
|
+
import { MarketplaceStore } from '../../../../entities'
|
4
|
+
import { STORE_STATUS } from '../../../constants'
|
5
|
+
|
6
|
+
export const deactivateWoocommerceStore = {
|
7
|
+
async deactivateWoocommerceStore(_: any, { name }, context: ResolverContext): Promise<MarketplaceStore> {
|
8
|
+
const { domain } = context.state
|
9
|
+
let marketplaceStore: MarketplaceStore = await getRepository(MarketplaceStore).findOne({
|
10
|
+
where: { domain: { id: domain.id }, name }
|
11
|
+
})
|
12
|
+
|
13
|
+
marketplaceStore.storeId = ''
|
14
|
+
marketplaceStore.accessKey = ''
|
15
|
+
marketplaceStore.accessSecret = ''
|
16
|
+
marketplaceStore.accessInfo = ''
|
17
|
+
marketplaceStore.status = STORE_STATUS.INACTIVE
|
18
|
+
return await getRepository(MarketplaceStore).save(marketplaceStore)
|
19
|
+
}
|
20
|
+
}
|
@@ -0,0 +1,14 @@
|
|
1
|
+
import { getRepository } from '@things-factory/shell'
|
2
|
+
|
3
|
+
import { MarketplaceStore } from '../../../../entities'
|
4
|
+
|
5
|
+
export const getWoocommerceAuthURL = {
|
6
|
+
async getWoocommerceAuthURL(_: any, { marketplaceStoreId, redirectUrl }, context: ResolverContext) {
|
7
|
+
const appName: string = context.request.header.origin
|
8
|
+
const returnURL: string = context.request.header.referer
|
9
|
+
let { storeURL }: MarketplaceStore = await getRepository(MarketplaceStore).findOneBy({ id: marketplaceStoreId })
|
10
|
+
storeURL = storeURL.replace(/\/$/, '')
|
11
|
+
|
12
|
+
return `${storeURL}/wc-auth/v1/authorize?app_name=${appName}&user_id=${marketplaceStoreId}&return_url=${returnURL}&callback_url=${redirectUrl}&scope=read_write`
|
13
|
+
}
|
14
|
+
}
|
@@ -0,0 +1,10 @@
|
|
1
|
+
import { deactivateWoocommerceStore } from './deactivate-woocommerce-store'
|
2
|
+
import { getWoocommerceAuthURL } from './get-woocommerce-auth-url'
|
3
|
+
|
4
|
+
export const Query = {
|
5
|
+
...getWoocommerceAuthURL
|
6
|
+
}
|
7
|
+
|
8
|
+
export const Mutation = {
|
9
|
+
...deactivateWoocommerceStore
|
10
|
+
}
|
@@ -0,0 +1,28 @@
|
|
1
|
+
import { getRepository } from '@things-factory/shell'
|
2
|
+
|
3
|
+
import { MarketplaceStore } from '../../../../entities'
|
4
|
+
import { STORE_STATUS } from '../../../constants'
|
5
|
+
|
6
|
+
export const deactivateZaloraStore = {
|
7
|
+
async deactivateZaloraStore(_: any, { name }, context: ResolverContext) {
|
8
|
+
const repository = getRepository(MarketplaceStore)
|
9
|
+
const marketplaceStore: any = await repository.findOne({
|
10
|
+
where: { domain: { id: context.state.domain.id }, name }
|
11
|
+
})
|
12
|
+
|
13
|
+
var patch = {
|
14
|
+
storeId: '',
|
15
|
+
accessToken: '',
|
16
|
+
refreshToken: '',
|
17
|
+
accessInfo: '',
|
18
|
+
countryCode: '',
|
19
|
+
status: STORE_STATUS.INACTIVE
|
20
|
+
}
|
21
|
+
|
22
|
+
return await repository.save({
|
23
|
+
...marketplaceStore,
|
24
|
+
...patch,
|
25
|
+
updater: context.state.user
|
26
|
+
})
|
27
|
+
}
|
28
|
+
}
|
@@ -0,0 +1,55 @@
|
|
1
|
+
import { v4 as uuidv4 } from 'uuid'
|
2
|
+
|
3
|
+
import { MarketplaceSetting, MarketplaceStore } from '../../../../entities'
|
4
|
+
import { STORE_STATUS } from '../../../constants'
|
5
|
+
|
6
|
+
export const generateZaloraAccessToken = {
|
7
|
+
async generateZaloraAccessToken(_: any, { id, apiKey, userId, countryCode }, context: ResolverContext) {
|
8
|
+
const { domain, user, tx } = context.state
|
9
|
+
const repository = tx.getRepository(MarketplaceStore)
|
10
|
+
const marketplaceStore: any = await repository.findOne({
|
11
|
+
where: { domain: { id: domain.id }, id }
|
12
|
+
})
|
13
|
+
|
14
|
+
var patch = {
|
15
|
+
accessToken: apiKey,
|
16
|
+
refreshToken: '',
|
17
|
+
accessInfo: JSON.stringify(
|
18
|
+
{
|
19
|
+
userId: userId,
|
20
|
+
apiKey: apiKey
|
21
|
+
},
|
22
|
+
null,
|
23
|
+
2
|
24
|
+
),
|
25
|
+
storeId: userId,
|
26
|
+
countryCode,
|
27
|
+
status: STORE_STATUS.ACTIVE
|
28
|
+
}
|
29
|
+
|
30
|
+
const marketplaceSettingCategories: any[] = ['stock_allocation', 'marketplace_order_max_weight']
|
31
|
+
|
32
|
+
marketplaceSettingCategories.forEach(async category => {
|
33
|
+
const foundMarketplaceSetting: MarketplaceSetting = await tx.getRepository(MarketplaceSetting).findOne({
|
34
|
+
where: { marketplaceStore: { id: marketplaceStore.id }, domain: { id: domain.id }, category }
|
35
|
+
})
|
36
|
+
|
37
|
+
if (!foundMarketplaceSetting) {
|
38
|
+
const marketplaceSetting = new MarketplaceSetting()
|
39
|
+
marketplaceSetting.name = uuidv4()
|
40
|
+
marketplaceSetting.marketplaceStore = marketplaceStore
|
41
|
+
marketplaceSetting.value = '100'
|
42
|
+
marketplaceSetting.category = category
|
43
|
+
marketplaceSetting.domain = domain
|
44
|
+
marketplaceSetting.creator = user
|
45
|
+
await tx.getRepository(MarketplaceSetting).save(marketplaceSetting)
|
46
|
+
}
|
47
|
+
})
|
48
|
+
|
49
|
+
return await repository.save({
|
50
|
+
...marketplaceStore,
|
51
|
+
...patch,
|
52
|
+
updater: user
|
53
|
+
})
|
54
|
+
}
|
55
|
+
}
|
@@ -0,0 +1,21 @@
|
|
1
|
+
import { v4 as uuidv4 } from 'uuid'
|
2
|
+
|
3
|
+
import { CourierService } from '@things-factory/integration-lmd'
|
4
|
+
|
5
|
+
import { MarketplaceStore, MarketplaceTransporter } from '../../../entities'
|
6
|
+
|
7
|
+
export const createMarketplaceTransporter = {
|
8
|
+
async createMarketplaceTransporter(_: any, { marketplaceStoreId, deliveryTransporter }, context: ResolverContext) {
|
9
|
+
const { domain, user, tx } = context.state
|
10
|
+
|
11
|
+
return await tx.getRepository(MarketplaceTransporter).save({
|
12
|
+
name: uuidv4().toString(),
|
13
|
+
marketplaceStore: await tx.getRepository(MarketplaceStore).findOneBy({ id: marketplaceStoreId }),
|
14
|
+
deliveryTransporter: await tx.getRepository(CourierService).findOneBy({ id: deliveryTransporter }),
|
15
|
+
pickupTransporter: await tx.getRepository(CourierService).findOneBy({ id: deliveryTransporter }),
|
16
|
+
domain,
|
17
|
+
creator: user,
|
18
|
+
updater: user
|
19
|
+
})
|
20
|
+
}
|
21
|
+
} as any
|
@@ -0,0 +1,13 @@
|
|
1
|
+
import { getRepository } from '@things-factory/shell'
|
2
|
+
|
3
|
+
import { MarketplaceTransporter } from '../../../entities'
|
4
|
+
|
5
|
+
export const deleteMarketplaceTransporter = {
|
6
|
+
async deleteMarketplaceTransporter(_: any, { name }, context: ResolverContext) {
|
7
|
+
const { domain, user } = context.state
|
8
|
+
|
9
|
+
await getRepository(MarketplaceTransporter).delete({ domain: { id: domain.id }, name })
|
10
|
+
|
11
|
+
return true
|
12
|
+
}
|
13
|
+
}
|
@@ -0,0 +1,18 @@
|
|
1
|
+
import { In } from 'typeorm'
|
2
|
+
|
3
|
+
import { getRepository } from '@things-factory/shell'
|
4
|
+
|
5
|
+
import { MarketplaceTransporter } from '../../../entities'
|
6
|
+
|
7
|
+
export const deleteMarketplaceTransporters = {
|
8
|
+
async deleteMarketplaceTransporters(_: any, { names }, context: ResolverContext) {
|
9
|
+
const { domain, user } = context.state
|
10
|
+
|
11
|
+
await getRepository(MarketplaceTransporter).delete({
|
12
|
+
domain: { id: domain.id },
|
13
|
+
name: In(names)
|
14
|
+
})
|
15
|
+
|
16
|
+
return true
|
17
|
+
}
|
18
|
+
}
|
@@ -0,0 +1,19 @@
|
|
1
|
+
import { Query, MarketplaceTransporter } from './marketplace-transporter-query'
|
2
|
+
|
3
|
+
import { updateMarketplaceTransporter } from './update-marketplace-transporter'
|
4
|
+
import { updateMultipleMarketplaceTransporter } from './update-multiple-marketplace-transporter'
|
5
|
+
import { createMarketplaceTransporter } from './create-marketplace-transporter'
|
6
|
+
import { deleteMarketplaceTransporter } from './delete-marketplace-transporter'
|
7
|
+
import { deleteMarketplaceTransporters } from './delete-marketplace-transporters'
|
8
|
+
|
9
|
+
export const MarketplaceTransporterResolver = {
|
10
|
+
MarketplaceTransporter,
|
11
|
+
Query,
|
12
|
+
Mutation: {
|
13
|
+
...updateMarketplaceTransporter,
|
14
|
+
...updateMultipleMarketplaceTransporter,
|
15
|
+
...createMarketplaceTransporter,
|
16
|
+
...deleteMarketplaceTransporter,
|
17
|
+
...deleteMarketplaceTransporters
|
18
|
+
}
|
19
|
+
} as any
|
@@ -0,0 +1,60 @@
|
|
1
|
+
import { convertListParams, getRepository, ListParam } from '@things-factory/shell'
|
2
|
+
|
3
|
+
import { MarketplaceStore, MarketplaceTransporter as MarketplaceTransporterEntity } from '../../../entities'
|
4
|
+
|
5
|
+
export const Query = {
|
6
|
+
async marketplaceTransporter(_: any, { marketplaceStoreId }, context: ResolverContext) {
|
7
|
+
const { domain, tx } = context.state
|
8
|
+
const marketplaceStore: MarketplaceStore = await tx
|
9
|
+
.getRepository(MarketplaceStore)
|
10
|
+
.findOneBy({ id: marketplaceStoreId })
|
11
|
+
|
12
|
+
const marketplaceTransporter = await tx.getRepository(MarketplaceTransporterEntity).findOne({
|
13
|
+
where: { domain: { id: domain.id }, marketplaceStore: { id: marketplaceStore.id } },
|
14
|
+
relations: ['marketplaceStore', 'deliveryTransporter', 'pickupTransporter']
|
15
|
+
})
|
16
|
+
|
17
|
+
return marketplaceTransporter
|
18
|
+
},
|
19
|
+
|
20
|
+
async marketplaceTransporters(_: any, params: ListParam, context: ResolverContext) {
|
21
|
+
const { tx } = context.state
|
22
|
+
|
23
|
+
const convertedParams = convertListParams(params)
|
24
|
+
const [items, total] = await tx.getRepository(MarketplaceTransporterEntity).findAndCount({
|
25
|
+
...convertedParams,
|
26
|
+
relations: ['domain', 'marketplaceStore', 'pickupTransporter', 'deliveryTransporter']
|
27
|
+
})
|
28
|
+
|
29
|
+
return { items, total }
|
30
|
+
}
|
31
|
+
}
|
32
|
+
|
33
|
+
export const MarketplaceTransporter = {
|
34
|
+
async domain(marketplaceTransporter) {
|
35
|
+
return (
|
36
|
+
await getRepository(MarketplaceTransporterEntity).findOne({
|
37
|
+
where: { id: marketplaceTransporter.id },
|
38
|
+
relations: ['domain']
|
39
|
+
})
|
40
|
+
)?.domain
|
41
|
+
},
|
42
|
+
|
43
|
+
async creator(marketplaceTransporter) {
|
44
|
+
return (
|
45
|
+
await getRepository(MarketplaceTransporterEntity).findOne({
|
46
|
+
where: { id: marketplaceTransporter.id },
|
47
|
+
relations: ['creator']
|
48
|
+
})
|
49
|
+
)?.creator
|
50
|
+
},
|
51
|
+
|
52
|
+
async updater(marketplaceTransporter) {
|
53
|
+
return (
|
54
|
+
await getRepository(MarketplaceTransporterEntity).findOne({
|
55
|
+
where: { id: marketplaceTransporter.id },
|
56
|
+
relations: ['updater']
|
57
|
+
})
|
58
|
+
)?.updater
|
59
|
+
}
|
60
|
+
}
|
@@ -0,0 +1,25 @@
|
|
1
|
+
import { CourierService } from '@things-factory/integration-lmd'
|
2
|
+
|
3
|
+
import { MarketplaceTransporter } from '../../../entities'
|
4
|
+
|
5
|
+
export const updateMarketplaceTransporter = {
|
6
|
+
async updateMarketplaceTransporter(_: any, { marketplaceStoreId, deliveryTransporter }, context: ResolverContext) {
|
7
|
+
const { domain, user, tx } = context.state
|
8
|
+
const marketplaceTransporterRepo = tx.getRepository(MarketplaceTransporter)
|
9
|
+
|
10
|
+
const marketplaceTransporter: MarketplaceTransporter = await marketplaceTransporterRepo.findOne({
|
11
|
+
where: {
|
12
|
+
domain: { id: domain.id },
|
13
|
+
marketplaceStore: { id: marketplaceStoreId }
|
14
|
+
},
|
15
|
+
relations: ['deliveryTransporter', 'pickupTransporter']
|
16
|
+
})
|
17
|
+
|
18
|
+
return await marketplaceTransporterRepo.save({
|
19
|
+
...marketplaceTransporter,
|
20
|
+
deliveryTransporter: await tx.getRepository(CourierService).findOneBy({ id: deliveryTransporter }),
|
21
|
+
pickupTransporter: await tx.getRepository(CourierService).findOneBy({ id: deliveryTransporter }),
|
22
|
+
updater: user
|
23
|
+
})
|
24
|
+
}
|
25
|
+
} as any
|
package/server/graphql/resolvers/marketplace-transporter/update-multiple-marketplace-transporter.ts
ADDED
@@ -0,0 +1,49 @@
|
|
1
|
+
import { getRepository } from '@things-factory/shell'
|
2
|
+
|
3
|
+
import { MarketplaceTransporter } from '../../../entities'
|
4
|
+
|
5
|
+
export const updateMultipleMarketplaceTransporter = {
|
6
|
+
async updateMultipleMarketplaceTransporter(_: any, { patches }, context: ResolverContext) {
|
7
|
+
const { domain, user } = context.state
|
8
|
+
|
9
|
+
let results = []
|
10
|
+
const _createRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === '+')
|
11
|
+
const _updateRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === 'M')
|
12
|
+
const marketplaceTransporterRepo = getRepository(MarketplaceTransporter)
|
13
|
+
|
14
|
+
if (_createRecords.length > 0) {
|
15
|
+
for (let i = 0; i < _createRecords.length; i++) {
|
16
|
+
const newRecord = _createRecords[i]
|
17
|
+
|
18
|
+
const result = await marketplaceTransporterRepo.save({
|
19
|
+
...newRecord,
|
20
|
+
domain: domain,
|
21
|
+
creator: user,
|
22
|
+
updater: user
|
23
|
+
})
|
24
|
+
|
25
|
+
results.push({ ...result, cuFlag: '+' })
|
26
|
+
}
|
27
|
+
}
|
28
|
+
|
29
|
+
if (_updateRecords.length > 0) {
|
30
|
+
for (let i = 0; i < _updateRecords.length; i++) {
|
31
|
+
const newRecord = _updateRecords[i]
|
32
|
+
const marketplaceTransporter = await marketplaceTransporterRepo.findOneBy({
|
33
|
+
domain: { id: domain.id },
|
34
|
+
id: newRecord.id
|
35
|
+
})
|
36
|
+
|
37
|
+
const result = await marketplaceTransporterRepo.save({
|
38
|
+
...marketplaceTransporter,
|
39
|
+
...newRecord,
|
40
|
+
updater: user
|
41
|
+
})
|
42
|
+
|
43
|
+
results.push({ ...result, cuFlag: 'M' })
|
44
|
+
}
|
45
|
+
}
|
46
|
+
|
47
|
+
return results
|
48
|
+
}
|
49
|
+
}
|
@@ -0,0 +1,9 @@
|
|
1
|
+
import { StoreAPI } from '../../../controllers/store-api'
|
2
|
+
|
3
|
+
export const acceptStoreOrderCancellation = {
|
4
|
+
async acceptStoreOrderCancellation(_: any, { storeId, orderId }, context: ResolverContext) {
|
5
|
+
// only in Shopee, to accept buyer order cancellation
|
6
|
+
var store = await StoreAPI.getMarketplaceStore(storeId)
|
7
|
+
return await StoreAPI.acceptStoreOrderCancellation(store, orderId)
|
8
|
+
}
|
9
|
+
}
|