@rovela-ai/sdk 0.1.18 → 0.1.20
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/admin/api/auth.js +5 -11
- package/dist/admin/api/auth.js.map +1 -1
- package/dist/admin/api/categories.js +43 -50
- package/dist/admin/api/categories.js.map +1 -1
- package/dist/admin/api/check.js +6 -9
- package/dist/admin/api/check.js.map +1 -1
- package/dist/admin/api/customers.js +17 -21
- package/dist/admin/api/customers.js.map +1 -1
- package/dist/admin/api/index.js +10 -38
- package/dist/admin/api/index.js.map +1 -1
- package/dist/admin/api/orders.js +30 -35
- package/dist/admin/api/orders.js.map +1 -1
- package/dist/admin/api/products.js +56 -66
- package/dist/admin/api/products.js.map +1 -1
- package/dist/admin/api/refund.js +26 -29
- package/dist/admin/api/refund.js.map +1 -1
- package/dist/admin/api/settings.js +17 -21
- package/dist/admin/api/settings.js.map +1 -1
- package/dist/admin/api/setup.js +17 -20
- package/dist/admin/api/setup.js.map +1 -1
- package/dist/admin/api/stats.js +14 -17
- package/dist/admin/api/stats.js.map +1 -1
- package/dist/admin/components/AdminGuard.js +13 -17
- package/dist/admin/components/AdminGuard.js.map +1 -1
- package/dist/admin/components/AdminHeader.js +8 -11
- package/dist/admin/components/AdminHeader.js.map +1 -1
- package/dist/admin/components/AdminLayout.js +5 -8
- package/dist/admin/components/AdminLayout.js.map +1 -1
- package/dist/admin/components/AdminLoginForm.js +11 -14
- package/dist/admin/components/AdminLoginForm.js.map +1 -1
- package/dist/admin/components/AdminNav.d.ts.map +1 -1
- package/dist/admin/components/AdminNav.js +16 -14
- package/dist/admin/components/AdminNav.js.map +1 -1
- package/dist/admin/components/AdminSetupForm.js +11 -14
- package/dist/admin/components/AdminSetupForm.js.map +1 -1
- package/dist/admin/components/CategoryForm.d.ts +30 -0
- package/dist/admin/components/CategoryForm.d.ts.map +1 -0
- package/dist/admin/components/CategoryForm.js +153 -0
- package/dist/admin/components/CategoryForm.js.map +1 -0
- package/dist/admin/components/CategorySelect.d.ts +32 -0
- package/dist/admin/components/CategorySelect.d.ts.map +1 -0
- package/dist/admin/components/CategorySelect.js +148 -0
- package/dist/admin/components/CategorySelect.js.map +1 -0
- package/dist/admin/components/InventoryEditor.js +16 -19
- package/dist/admin/components/InventoryEditor.js.map +1 -1
- package/dist/admin/components/LowStockAlert.js +6 -9
- package/dist/admin/components/LowStockAlert.js.map +1 -1
- package/dist/admin/components/OrderDetails.js +15 -18
- package/dist/admin/components/OrderDetails.js.map +1 -1
- package/dist/admin/components/OrderTable.js +13 -16
- package/dist/admin/components/OrderTable.js.map +1 -1
- package/dist/admin/components/ProductForm.d.ts +2 -2
- package/dist/admin/components/ProductForm.d.ts.map +1 -1
- package/dist/admin/components/ProductForm.js +140 -27
- package/dist/admin/components/ProductForm.js.map +1 -1
- package/dist/admin/components/ProductTable.js +15 -18
- package/dist/admin/components/ProductTable.js.map +1 -1
- package/dist/admin/components/RecentOrders.js +6 -9
- package/dist/admin/components/RecentOrders.js.map +1 -1
- package/dist/admin/components/RefundDialog.js +12 -15
- package/dist/admin/components/RefundDialog.js.map +1 -1
- package/dist/admin/components/SEOPreview.d.ts +32 -0
- package/dist/admin/components/SEOPreview.d.ts.map +1 -0
- package/dist/admin/components/SEOPreview.js +30 -0
- package/dist/admin/components/SEOPreview.js.map +1 -0
- package/dist/admin/components/StatsCards.js +7 -10
- package/dist/admin/components/StatsCards.js.map +1 -1
- package/dist/admin/components/StoreSettings.js +10 -13
- package/dist/admin/components/StoreSettings.js.map +1 -1
- package/dist/admin/components/TagInput.d.ts +29 -0
- package/dist/admin/components/TagInput.d.ts.map +1 -0
- package/dist/admin/components/TagInput.js +73 -0
- package/dist/admin/components/TagInput.js.map +1 -0
- package/dist/admin/components/VariantManager.d.ts +42 -0
- package/dist/admin/components/VariantManager.d.ts.map +1 -0
- package/dist/admin/components/VariantManager.js +175 -0
- package/dist/admin/components/VariantManager.js.map +1 -0
- package/dist/admin/components/index.d.ts +5 -0
- package/dist/admin/components/index.d.ts.map +1 -1
- package/dist/admin/components/index.js +27 -35
- package/dist/admin/components/index.js.map +1 -1
- package/dist/admin/config.js +12 -54
- package/dist/admin/config.js.map +1 -1
- package/dist/admin/hooks/index.d.ts +2 -0
- package/dist/admin/hooks/index.d.ts.map +1 -1
- package/dist/admin/hooks/index.js +5 -11
- package/dist/admin/hooks/index.js.map +1 -1
- package/dist/admin/hooks/useAdminAuth.js +9 -12
- package/dist/admin/hooks/useAdminAuth.js.map +1 -1
- package/dist/admin/hooks/useAdminCategories.d.ts +36 -0
- package/dist/admin/hooks/useAdminCategories.d.ts.map +1 -0
- package/dist/admin/hooks/useAdminCategories.js +217 -0
- package/dist/admin/hooks/useAdminCategories.js.map +1 -0
- package/dist/admin/hooks/useAdminOrders.js +11 -14
- package/dist/admin/hooks/useAdminOrders.js.map +1 -1
- package/dist/admin/hooks/useAdminProducts.js +13 -16
- package/dist/admin/hooks/useAdminProducts.js.map +1 -1
- package/dist/admin/hooks/useAdminStats.js +11 -14
- package/dist/admin/hooks/useAdminStats.js.map +1 -1
- package/dist/admin/index.d.ts +3 -2
- package/dist/admin/index.d.ts.map +1 -1
- package/dist/admin/index.js +17 -66
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/server/admin-service.js +39 -83
- package/dist/admin/server/admin-service.js.map +1 -1
- package/dist/admin/server/index.js +3 -13
- package/dist/admin/server/index.js.map +1 -1
- package/dist/admin/types.js +1 -2
- package/dist/admin/types.js.map +1 -1
- package/dist/auth/api/auth.js +6 -14
- package/dist/auth/api/auth.js.map +1 -1
- package/dist/auth/api/forgot-password.js +8 -11
- package/dist/auth/api/forgot-password.js.map +1 -1
- package/dist/auth/api/index.js +6 -18
- package/dist/auth/api/index.js.map +1 -1
- package/dist/auth/api/register.js +17 -20
- package/dist/auth/api/register.js.map +1 -1
- package/dist/auth/api/resend-verification.js +9 -12
- package/dist/auth/api/resend-verification.js.map +1 -1
- package/dist/auth/api/reset-password.js +18 -22
- package/dist/auth/api/reset-password.js.map +1 -1
- package/dist/auth/api/verify-email.js +14 -18
- package/dist/auth/api/verify-email.js.map +1 -1
- package/dist/auth/components/AuthGuard.js +13 -17
- package/dist/auth/components/AuthGuard.js.map +1 -1
- package/dist/auth/components/ForgotPasswordForm.js +11 -14
- package/dist/auth/components/ForgotPasswordForm.js.map +1 -1
- package/dist/auth/components/ResetPasswordForm.js +18 -21
- package/dist/auth/components/ResetPasswordForm.js.map +1 -1
- package/dist/auth/components/SignInForm.js +13 -16
- package/dist/auth/components/SignInForm.js.map +1 -1
- package/dist/auth/components/SignUpForm.js +15 -18
- package/dist/auth/components/SignUpForm.js.map +1 -1
- package/dist/auth/components/UserMenu.js +13 -16
- package/dist/auth/components/UserMenu.js.map +1 -1
- package/dist/auth/components/VerifyEmailNotice.js +10 -13
- package/dist/auth/components/VerifyEmailNotice.js.map +1 -1
- package/dist/auth/components/index.js +7 -18
- package/dist/auth/components/index.js.map +1 -1
- package/dist/auth/config.js +9 -49
- package/dist/auth/config.js.map +1 -1
- package/dist/auth/hooks/index.js +1 -5
- package/dist/auth/hooks/index.js.map +1 -1
- package/dist/auth/hooks/useAuth.js +14 -17
- package/dist/auth/hooks/useAuth.js.map +1 -1
- package/dist/auth/index.js +15 -37
- package/dist/auth/index.js.map +1 -1
- package/dist/auth/server/customer-service.js +39 -83
- package/dist/auth/server/customer-service.js.map +1 -1
- package/dist/auth/server/email-sender.js +11 -17
- package/dist/auth/server/email-sender.js.map +1 -1
- package/dist/auth/server/index.js +5 -36
- package/dist/auth/server/index.js.map +1 -1
- package/dist/auth/server/password-reset-service.js +30 -70
- package/dist/auth/server/password-reset-service.js.map +1 -1
- package/dist/auth/server/password.js +9 -18
- package/dist/auth/server/password.js.map +1 -1
- package/dist/auth/server/verification-service.js +35 -76
- package/dist/auth/server/verification-service.js.map +1 -1
- package/dist/auth/types.js +1 -2
- package/dist/auth/types.js.map +1 -1
- package/dist/cart/CartProvider.js +13 -17
- package/dist/cart/CartProvider.js.map +1 -1
- package/dist/cart/components/AddToCartButton.js +16 -19
- package/dist/cart/components/AddToCartButton.js.map +1 -1
- package/dist/cart/components/CartDrawer.js +17 -23
- package/dist/cart/components/CartDrawer.js.map +1 -1
- package/dist/cart/components/CartIcon.js +9 -12
- package/dist/cart/components/CartIcon.js.map +1 -1
- package/dist/cart/components/CartItem.js +7 -13
- package/dist/cart/components/CartItem.js.map +1 -1
- package/dist/cart/components/CartSummary.js +12 -15
- package/dist/cart/components/CartSummary.js.map +1 -1
- package/dist/cart/components/QuantitySelector.js +9 -12
- package/dist/cart/components/QuantitySelector.js.map +1 -1
- package/dist/cart/components/index.js +6 -15
- package/dist/cart/components/index.js.map +1 -1
- package/dist/cart/index.js +3 -17
- package/dist/cart/index.js.map +1 -1
- package/dist/cart/store.js +8 -13
- package/dist/cart/store.js.map +1 -1
- package/dist/checkout/api/checkout.js +12 -15
- package/dist/checkout/api/checkout.js.map +1 -1
- package/dist/checkout/api/index.js +2 -7
- package/dist/checkout/api/index.js.map +1 -1
- package/dist/checkout/api/webhook.js +8 -11
- package/dist/checkout/api/webhook.js.map +1 -1
- package/dist/checkout/components/CheckoutButton.js +8 -11
- package/dist/checkout/components/CheckoutButton.js.map +1 -1
- package/dist/checkout/components/CheckoutSuccess.js +11 -14
- package/dist/checkout/components/CheckoutSuccess.js.map +1 -1
- package/dist/checkout/components/OrderSummary.js +8 -11
- package/dist/checkout/components/OrderSummary.js.map +1 -1
- package/dist/checkout/components/ShippingForm.js +14 -17
- package/dist/checkout/components/ShippingForm.js.map +1 -1
- package/dist/checkout/components/index.js +4 -11
- package/dist/checkout/components/index.js.map +1 -1
- package/dist/checkout/hooks/index.js +1 -6
- package/dist/checkout/hooks/index.js.map +1 -1
- package/dist/checkout/hooks/useCheckout.js +10 -19
- package/dist/checkout/hooks/useCheckout.js.map +1 -1
- package/dist/checkout/index.js +7 -28
- package/dist/checkout/index.js.map +1 -1
- package/dist/checkout/server/create-checkout-session.js +11 -16
- package/dist/checkout/server/create-checkout-session.js.map +1 -1
- package/dist/checkout/server/handle-webhook.js +21 -24
- package/dist/checkout/server/handle-webhook.js.map +1 -1
- package/dist/checkout/server/index.js +3 -13
- package/dist/checkout/server/index.js.map +1 -1
- package/dist/checkout/server/order-service.js +11 -16
- package/dist/checkout/server/order-service.js.map +1 -1
- package/dist/checkout/stripe/client.js +13 -29
- package/dist/checkout/stripe/client.js.map +1 -1
- package/dist/checkout/stripe/index.js +1 -15
- package/dist/checkout/stripe/index.js.map +1 -1
- package/dist/checkout/types.js +1 -2
- package/dist/checkout/types.js.map +1 -1
- package/dist/core/StoreSettingsProvider.d.ts +104 -0
- package/dist/core/StoreSettingsProvider.d.ts.map +1 -0
- package/dist/core/StoreSettingsProvider.js +195 -0
- package/dist/core/StoreSettingsProvider.js.map +1 -0
- package/dist/core/api/index.d.ts +7 -0
- package/dist/core/api/index.d.ts.map +1 -0
- package/dist/core/api/index.js +7 -0
- package/dist/core/api/index.js.map +1 -0
- package/dist/core/api/settings.d.ts +42 -0
- package/dist/core/api/settings.d.ts.map +1 -0
- package/dist/core/api/settings.js +74 -0
- package/dist/core/api/settings.js.map +1 -0
- package/dist/core/config.js +12 -57
- package/dist/core/config.js.map +1 -1
- package/dist/core/db/client.js +16 -62
- package/dist/core/db/client.js.map +1 -1
- package/dist/core/db/index.js +14 -93
- package/dist/core/db/index.js.map +1 -1
- package/dist/core/db/queries.d.ts +6 -6
- package/dist/core/db/queries.js +207 -284
- package/dist/core/db/queries.js.map +1 -1
- package/dist/core/db/schema.js +179 -182
- package/dist/core/db/schema.js.map +1 -1
- package/dist/core/index.d.ts +2 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +14 -42
- package/dist/core/index.js.map +1 -1
- package/dist/core/server/index.js +16 -68
- package/dist/core/server/index.js.map +1 -1
- package/dist/core/types.js +1 -2
- package/dist/core/types.js.map +1 -1
- package/dist/core/utils.js +26 -51
- package/dist/core/utils.js.map +1 -1
- package/dist/emails/config.js +13 -21
- package/dist/emails/config.js.map +1 -1
- package/dist/emails/index.js +10 -72
- package/dist/emails/index.js.map +1 -1
- package/dist/emails/send/auth.js +26 -34
- package/dist/emails/send/auth.js.map +1 -1
- package/dist/emails/send/index.js +2 -21
- package/dist/emails/send/index.js.map +1 -1
- package/dist/emails/send/orders.js +38 -50
- package/dist/emails/send/orders.js.map +1 -1
- package/dist/emails/sender.js +7 -12
- package/dist/emails/sender.js.map +1 -1
- package/dist/emails/templates/base.js +37 -53
- package/dist/emails/templates/base.js.map +1 -1
- package/dist/emails/templates/email-verification.js +12 -16
- package/dist/emails/templates/email-verification.js.map +1 -1
- package/dist/emails/templates/index.js +9 -43
- package/dist/emails/templates/index.js.map +1 -1
- package/dist/emails/templates/order-cancelled.js +18 -22
- package/dist/emails/templates/order-cancelled.js.map +1 -1
- package/dist/emails/templates/order-confirmation.js +30 -34
- package/dist/emails/templates/order-confirmation.js.map +1 -1
- package/dist/emails/templates/order-delivered.js +20 -24
- package/dist/emails/templates/order-delivered.js.map +1 -1
- package/dist/emails/templates/order-shipped.js +19 -23
- package/dist/emails/templates/order-shipped.js.map +1 -1
- package/dist/emails/templates/password-reset.js +12 -16
- package/dist/emails/templates/password-reset.js.map +1 -1
- package/dist/emails/templates/refund-processed.js +17 -21
- package/dist/emails/templates/refund-processed.js.map +1 -1
- package/dist/emails/templates/welcome.js +11 -15
- package/dist/emails/templates/welcome.js.map +1 -1
- package/dist/emails/types.js +1 -2
- package/dist/emails/types.js.map +1 -1
- package/dist/emails/utils.js +9 -20
- package/dist/emails/utils.js.map +1 -1
- package/dist/index.js +24 -176
- package/dist/index.js.map +1 -1
- package/dist/products/api/categories.js +7 -10
- package/dist/products/api/categories.js.map +1 -1
- package/dist/products/api/index.js +3 -9
- package/dist/products/api/index.js.map +1 -1
- package/dist/products/api/product.js +10 -13
- package/dist/products/api/product.js.map +1 -1
- package/dist/products/api/products.js +8 -11
- package/dist/products/api/products.js.map +1 -1
- package/dist/products/components/CategoryNav.js +20 -26
- package/dist/products/components/CategoryNav.js.map +1 -1
- package/dist/products/components/ProductBreadcrumb.js +7 -13
- package/dist/products/components/ProductBreadcrumb.js.map +1 -1
- package/dist/products/components/ProductCard.js +6 -12
- package/dist/products/components/ProductCard.js.map +1 -1
- package/dist/products/components/ProductDetails.js +14 -17
- package/dist/products/components/ProductDetails.js.map +1 -1
- package/dist/products/components/ProductFilters.js +15 -18
- package/dist/products/components/ProductFilters.js.map +1 -1
- package/dist/products/components/ProductGallery.js +17 -23
- package/dist/products/components/ProductGallery.js.map +1 -1
- package/dist/products/components/ProductGrid.js +10 -13
- package/dist/products/components/ProductGrid.js.map +1 -1
- package/dist/products/components/ProductSearch.js +14 -17
- package/dist/products/components/ProductSearch.js.map +1 -1
- package/dist/products/components/ProductSort.js +8 -11
- package/dist/products/components/ProductSort.js.map +1 -1
- package/dist/products/components/VariantSelector.js +16 -19
- package/dist/products/components/VariantSelector.js.map +1 -1
- package/dist/products/components/index.js +10 -23
- package/dist/products/components/index.js.map +1 -1
- package/dist/products/hooks/index.js +4 -11
- package/dist/products/hooks/index.js.map +1 -1
- package/dist/products/hooks/useCategories.js +12 -15
- package/dist/products/hooks/useCategories.js.map +1 -1
- package/dist/products/hooks/useProduct.js +9 -12
- package/dist/products/hooks/useProduct.js.map +1 -1
- package/dist/products/hooks/useProductAttributes.js +10 -13
- package/dist/products/hooks/useProductAttributes.js.map +1 -1
- package/dist/products/hooks/useProducts.js +15 -18
- package/dist/products/hooks/useProducts.js.map +1 -1
- package/dist/products/index.js +6 -23
- package/dist/products/index.js.map +1 -1
- package/dist/theme/ThemeProvider.js +12 -14
- package/dist/theme/ThemeProvider.js.map +1 -1
- package/dist/theme/colors.js +3 -8
- package/dist/theme/colors.js.map +1 -1
- package/dist/theme/defaults.js +27 -30
- package/dist/theme/defaults.js.map +1 -1
- package/dist/theme/fonts.js +12 -18
- package/dist/theme/fonts.js.map +1 -1
- package/dist/theme/generator.js +63 -69
- package/dist/theme/generator.js.map +1 -1
- package/dist/theme/hooks.js +11 -16
- package/dist/theme/hooks.js.map +1 -1
- package/dist/theme/index.js +6 -42
- package/dist/theme/index.js.map +1 -1
- package/package.json +35 -30
package/dist/admin/api/orders.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* @rovela/sdk/admin/api/orders
|
|
4
3
|
*
|
|
@@ -13,23 +12,19 @@
|
|
|
13
12
|
* export { GET as getOrder, PUT } from '@rovela/sdk/admin/api/orders'
|
|
14
13
|
* ```
|
|
15
14
|
*/
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
const next_auth_1 = require("next-auth");
|
|
22
|
-
const config_1 = require("../../auth/config");
|
|
23
|
-
const queries_1 = require("../../core/db/queries");
|
|
24
|
-
const emails_1 = require("../../emails");
|
|
15
|
+
import { NextResponse } from 'next/server';
|
|
16
|
+
import { getServerSession } from 'next-auth';
|
|
17
|
+
import { createAuthOptions } from '../../auth/config';
|
|
18
|
+
import { findOrders, findOrderById, countOrders, updateOrderStatus, } from '../../core/db/queries';
|
|
19
|
+
import { sendOrderShippedAsync, sendOrderDeliveredAsync, sendOrderCancelledAsync, formatPrice, formatOrderNumber, } from '../../emails';
|
|
25
20
|
// =============================================================================
|
|
26
21
|
// Auth Helper
|
|
27
22
|
// =============================================================================
|
|
28
23
|
async function requireAdmin() {
|
|
29
|
-
const session = await
|
|
24
|
+
const session = await getServerSession(createAuthOptions());
|
|
30
25
|
const user = session?.user;
|
|
31
26
|
if (!user?.role || !['owner', 'admin'].includes(user.role)) {
|
|
32
|
-
return
|
|
27
|
+
return NextResponse.json({ error: 'Unauthorized', code: 'UNAUTHORIZED' }, { status: 401 });
|
|
33
28
|
}
|
|
34
29
|
return null; // Auth passed
|
|
35
30
|
}
|
|
@@ -46,7 +41,7 @@ async function requireAdmin() {
|
|
|
46
41
|
* - page: number (default 1)
|
|
47
42
|
* - limit: number (default 20, max 100)
|
|
48
43
|
*/
|
|
49
|
-
async function GET(request) {
|
|
44
|
+
export async function GET(request) {
|
|
50
45
|
const authError = await requireAdmin();
|
|
51
46
|
if (authError)
|
|
52
47
|
return authError;
|
|
@@ -61,10 +56,10 @@ async function GET(request) {
|
|
|
61
56
|
const status = isValidStatus(statusParam) ? statusParam : undefined;
|
|
62
57
|
// Execute queries
|
|
63
58
|
const [orders, total] = await Promise.all([
|
|
64
|
-
|
|
65
|
-
|
|
59
|
+
findOrders({ status, limit, offset }),
|
|
60
|
+
countOrders({ status }),
|
|
66
61
|
]);
|
|
67
|
-
return
|
|
62
|
+
return NextResponse.json({
|
|
68
63
|
data: orders,
|
|
69
64
|
total,
|
|
70
65
|
page,
|
|
@@ -74,7 +69,7 @@ async function GET(request) {
|
|
|
74
69
|
}
|
|
75
70
|
catch (error) {
|
|
76
71
|
console.error('[Admin Orders API] GET error:', error);
|
|
77
|
-
return
|
|
72
|
+
return NextResponse.json({ error: 'Failed to fetch orders', code: 'INTERNAL_ERROR' }, { status: 500 });
|
|
78
73
|
}
|
|
79
74
|
}
|
|
80
75
|
// =============================================================================
|
|
@@ -85,21 +80,21 @@ async function GET(request) {
|
|
|
85
80
|
*
|
|
86
81
|
* Get a single order by ID with items.
|
|
87
82
|
*/
|
|
88
|
-
async function getOrder(request, { params }) {
|
|
83
|
+
export async function getOrder(request, { params }) {
|
|
89
84
|
const authError = await requireAdmin();
|
|
90
85
|
if (authError)
|
|
91
86
|
return authError;
|
|
92
87
|
try {
|
|
93
88
|
const { id } = await params;
|
|
94
|
-
const order = await
|
|
89
|
+
const order = await findOrderById(id);
|
|
95
90
|
if (!order) {
|
|
96
|
-
return
|
|
91
|
+
return NextResponse.json({ error: 'Order not found', code: 'NOT_FOUND' }, { status: 404 });
|
|
97
92
|
}
|
|
98
|
-
return
|
|
93
|
+
return NextResponse.json({ data: order });
|
|
99
94
|
}
|
|
100
95
|
catch (error) {
|
|
101
96
|
console.error('[Admin Orders API] getOrder error:', error);
|
|
102
|
-
return
|
|
97
|
+
return NextResponse.json({ error: 'Failed to fetch order', code: 'INTERNAL_ERROR' }, { status: 500 });
|
|
103
98
|
}
|
|
104
99
|
}
|
|
105
100
|
/**
|
|
@@ -113,7 +108,7 @@ async function getOrder(request, { params }) {
|
|
|
113
108
|
* - trackingNumber: string (for shipped status)
|
|
114
109
|
* - trackingUrl: string (for shipped status)
|
|
115
110
|
*/
|
|
116
|
-
async function PUT(request, { params }) {
|
|
111
|
+
export async function PUT(request, { params }) {
|
|
117
112
|
const authError = await requireAdmin();
|
|
118
113
|
if (authError)
|
|
119
114
|
return authError;
|
|
@@ -122,28 +117,28 @@ async function PUT(request, { params }) {
|
|
|
122
117
|
const body = await request.json();
|
|
123
118
|
// Validate status
|
|
124
119
|
if (!body.status || !isValidStatus(body.status)) {
|
|
125
|
-
return
|
|
120
|
+
return NextResponse.json({ error: 'Valid status is required', code: 'VALIDATION_ERROR' }, { status: 400 });
|
|
126
121
|
}
|
|
127
122
|
// Get existing order
|
|
128
|
-
const existingOrder = await
|
|
123
|
+
const existingOrder = await findOrderById(id);
|
|
129
124
|
if (!existingOrder) {
|
|
130
|
-
return
|
|
125
|
+
return NextResponse.json({ error: 'Order not found', code: 'NOT_FOUND' }, { status: 404 });
|
|
131
126
|
}
|
|
132
127
|
// Update status
|
|
133
|
-
const updatedOrder = await
|
|
128
|
+
const updatedOrder = await updateOrderStatus(id, body.status);
|
|
134
129
|
if (!updatedOrder) {
|
|
135
|
-
return
|
|
130
|
+
return NextResponse.json({ error: 'Failed to update order', code: 'INTERNAL_ERROR' }, { status: 500 });
|
|
136
131
|
}
|
|
137
132
|
// Send notification email if requested
|
|
138
133
|
const notifyCustomer = body.notifyCustomer !== false;
|
|
139
134
|
if (notifyCustomer && existingOrder.email) {
|
|
140
135
|
await sendStatusNotification(body.status, existingOrder.email, existingOrder.id, existingOrder.total, body.trackingNumber, body.trackingUrl);
|
|
141
136
|
}
|
|
142
|
-
return
|
|
137
|
+
return NextResponse.json({ success: true, data: updatedOrder });
|
|
143
138
|
}
|
|
144
139
|
catch (error) {
|
|
145
140
|
console.error('[Admin Orders API] PUT error:', error);
|
|
146
|
-
return
|
|
141
|
+
return NextResponse.json({ error: 'Failed to update order', code: 'INTERNAL_ERROR' }, { status: 500 });
|
|
147
142
|
}
|
|
148
143
|
}
|
|
149
144
|
// =============================================================================
|
|
@@ -162,13 +157,13 @@ function isValidStatus(value) {
|
|
|
162
157
|
* Fire-and-forget - errors are logged but don't block the response.
|
|
163
158
|
*/
|
|
164
159
|
async function sendStatusNotification(status, email, orderId, total, trackingNumber, trackingUrl) {
|
|
165
|
-
const orderNumber =
|
|
160
|
+
const orderNumber = formatOrderNumber(orderId);
|
|
166
161
|
const customerName = email.split('@')[0]; // Fallback name
|
|
167
162
|
const storeUrl = process.env.NEXT_PUBLIC_APP_URL || 'https://store.example.com';
|
|
168
163
|
try {
|
|
169
164
|
switch (status) {
|
|
170
165
|
case 'shipped':
|
|
171
|
-
|
|
166
|
+
sendOrderShippedAsync({
|
|
172
167
|
to: email,
|
|
173
168
|
customerName,
|
|
174
169
|
orderNumber,
|
|
@@ -188,7 +183,7 @@ async function sendStatusNotification(status, email, orderId, total, trackingNum
|
|
|
188
183
|
console.log('[Admin Orders] Shipped email queued for:', email);
|
|
189
184
|
break;
|
|
190
185
|
case 'delivered':
|
|
191
|
-
|
|
186
|
+
sendOrderDeliveredAsync({
|
|
192
187
|
to: email,
|
|
193
188
|
customerName,
|
|
194
189
|
orderNumber,
|
|
@@ -200,13 +195,13 @@ async function sendStatusNotification(status, email, orderId, total, trackingNum
|
|
|
200
195
|
console.log('[Admin Orders] Delivered email queued for:', email);
|
|
201
196
|
break;
|
|
202
197
|
case 'cancelled':
|
|
203
|
-
|
|
198
|
+
sendOrderCancelledAsync({
|
|
204
199
|
to: email,
|
|
205
200
|
customerName,
|
|
206
201
|
orderNumber,
|
|
207
202
|
cancellationReason: 'Order cancelled by store',
|
|
208
203
|
cancellationDate: new Date().toLocaleDateString(),
|
|
209
|
-
refundMessage: `Your refund of ${
|
|
204
|
+
refundMessage: `Your refund of ${formatPrice(parseFloat(total))} will be processed within 3-5 business days.`,
|
|
210
205
|
});
|
|
211
206
|
console.log('[Admin Orders] Cancelled email queued for:', email);
|
|
212
207
|
break;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orders.js","sourceRoot":"","sources":["../../../src/admin/api/orders.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"orders.js","sourceRoot":"","sources":["../../../src/admin/api/orders.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* @rovela/sdk/admin/api/products
|
|
4
3
|
*
|
|
@@ -13,28 +12,19 @@
|
|
|
13
12
|
* export { GET as getProduct, PUT, DELETE } from '@rovela/sdk/admin/api/products'
|
|
14
13
|
* ```
|
|
15
14
|
*/
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
exports.DELETE = DELETE;
|
|
22
|
-
exports.addVariant = addVariant;
|
|
23
|
-
exports.updateVariantHandler = updateVariantHandler;
|
|
24
|
-
exports.deleteVariantHandler = deleteVariantHandler;
|
|
25
|
-
const server_1 = require("next/server");
|
|
26
|
-
const next_auth_1 = require("next-auth");
|
|
27
|
-
const config_1 = require("../../auth/config");
|
|
28
|
-
const queries_1 = require("../../core/db/queries");
|
|
29
|
-
const utils_1 = require("../../core/utils");
|
|
15
|
+
import { NextResponse } from 'next/server';
|
|
16
|
+
import { getServerSession } from 'next-auth';
|
|
17
|
+
import { createAuthOptions } from '../../auth/config';
|
|
18
|
+
import { findProducts, findProductById, findProductVariants, countProducts, createProduct, updateProduct, deleteProduct, createProductVariant, updateProductVariant, deleteProductVariant, } from '../../core/db/queries';
|
|
19
|
+
import { generateSlug } from '../../core/utils';
|
|
30
20
|
// =============================================================================
|
|
31
21
|
// Auth Helper
|
|
32
22
|
// =============================================================================
|
|
33
23
|
async function requireAdmin() {
|
|
34
|
-
const session = await
|
|
24
|
+
const session = await getServerSession(createAuthOptions());
|
|
35
25
|
const user = session?.user;
|
|
36
26
|
if (!user?.role || !['owner', 'admin'].includes(user.role)) {
|
|
37
|
-
return
|
|
27
|
+
return NextResponse.json({ error: 'Unauthorized', code: 'UNAUTHORIZED' }, { status: 401 });
|
|
38
28
|
}
|
|
39
29
|
return null; // Auth passed
|
|
40
30
|
}
|
|
@@ -54,7 +44,7 @@ async function requireAdmin() {
|
|
|
54
44
|
* - page: number (default 1)
|
|
55
45
|
* - limit: number (default 20, max 100)
|
|
56
46
|
*/
|
|
57
|
-
async function GET(request) {
|
|
47
|
+
export async function GET(request) {
|
|
58
48
|
const authError = await requireAdmin();
|
|
59
49
|
if (authError)
|
|
60
50
|
return authError;
|
|
@@ -71,10 +61,10 @@ async function GET(request) {
|
|
|
71
61
|
const sort = parseSort(searchParams.get('sort'));
|
|
72
62
|
// Execute queries
|
|
73
63
|
const [products, total] = await Promise.all([
|
|
74
|
-
|
|
75
|
-
|
|
64
|
+
findProducts({ search, categoryId, status, sort, limit, offset }),
|
|
65
|
+
countProducts({ search, categoryId, status }),
|
|
76
66
|
]);
|
|
77
|
-
return
|
|
67
|
+
return NextResponse.json({
|
|
78
68
|
data: products,
|
|
79
69
|
total,
|
|
80
70
|
page,
|
|
@@ -84,7 +74,7 @@ async function GET(request) {
|
|
|
84
74
|
}
|
|
85
75
|
catch (error) {
|
|
86
76
|
console.error('[Admin Products API] GET error:', error);
|
|
87
|
-
return
|
|
77
|
+
return NextResponse.json({ error: 'Failed to fetch products', code: 'INTERNAL_ERROR' }, { status: 500 });
|
|
88
78
|
}
|
|
89
79
|
}
|
|
90
80
|
/**
|
|
@@ -92,7 +82,7 @@ async function GET(request) {
|
|
|
92
82
|
*
|
|
93
83
|
* Create a new product.
|
|
94
84
|
*/
|
|
95
|
-
async function POST(request) {
|
|
85
|
+
export async function POST(request) {
|
|
96
86
|
const authError = await requireAdmin();
|
|
97
87
|
if (authError)
|
|
98
88
|
return authError;
|
|
@@ -100,15 +90,15 @@ async function POST(request) {
|
|
|
100
90
|
const body = await request.json();
|
|
101
91
|
// Validate required fields
|
|
102
92
|
if (!body.name || typeof body.name !== 'string') {
|
|
103
|
-
return
|
|
93
|
+
return NextResponse.json({ error: 'Product name is required', code: 'VALIDATION_ERROR' }, { status: 400 });
|
|
104
94
|
}
|
|
105
95
|
if (body.price === undefined || typeof body.price !== 'number') {
|
|
106
|
-
return
|
|
96
|
+
return NextResponse.json({ error: 'Product price is required', code: 'VALIDATION_ERROR' }, { status: 400 });
|
|
107
97
|
}
|
|
108
98
|
// Generate slug if not provided
|
|
109
|
-
const slug = body.slug ||
|
|
99
|
+
const slug = body.slug || generateSlug(body.name);
|
|
110
100
|
// Create product
|
|
111
|
-
const product = await
|
|
101
|
+
const product = await createProduct({
|
|
112
102
|
name: body.name,
|
|
113
103
|
slug,
|
|
114
104
|
description: body.description || '',
|
|
@@ -125,7 +115,7 @@ async function POST(request) {
|
|
|
125
115
|
// Create variants if provided
|
|
126
116
|
if (body.variants && Array.isArray(body.variants)) {
|
|
127
117
|
for (const variant of body.variants) {
|
|
128
|
-
await
|
|
118
|
+
await createProductVariant({
|
|
129
119
|
productId: product.id,
|
|
130
120
|
sku: variant.sku,
|
|
131
121
|
name: variant.name,
|
|
@@ -135,15 +125,15 @@ async function POST(request) {
|
|
|
135
125
|
});
|
|
136
126
|
}
|
|
137
127
|
}
|
|
138
|
-
return
|
|
128
|
+
return NextResponse.json({ success: true, data: product }, { status: 201 });
|
|
139
129
|
}
|
|
140
130
|
catch (error) {
|
|
141
131
|
console.error('[Admin Products API] POST error:', error);
|
|
142
132
|
// Handle unique constraint violation
|
|
143
133
|
if (error?.code === '23505') {
|
|
144
|
-
return
|
|
134
|
+
return NextResponse.json({ error: 'A product with this slug already exists', code: 'VALIDATION_ERROR' }, { status: 400 });
|
|
145
135
|
}
|
|
146
|
-
return
|
|
136
|
+
return NextResponse.json({ error: 'Failed to create product', code: 'INTERNAL_ERROR' }, { status: 500 });
|
|
147
137
|
}
|
|
148
138
|
}
|
|
149
139
|
// =============================================================================
|
|
@@ -154,25 +144,25 @@ async function POST(request) {
|
|
|
154
144
|
*
|
|
155
145
|
* Get a single product by ID with variants.
|
|
156
146
|
*/
|
|
157
|
-
async function getProduct(request, { params }) {
|
|
147
|
+
export async function getProduct(request, { params }) {
|
|
158
148
|
const authError = await requireAdmin();
|
|
159
149
|
if (authError)
|
|
160
150
|
return authError;
|
|
161
151
|
try {
|
|
162
152
|
const { id } = await params;
|
|
163
|
-
const product = await
|
|
153
|
+
const product = await findProductById(id);
|
|
164
154
|
if (!product) {
|
|
165
|
-
return
|
|
155
|
+
return NextResponse.json({ error: 'Product not found', code: 'NOT_FOUND' }, { status: 404 });
|
|
166
156
|
}
|
|
167
157
|
// Get variants
|
|
168
|
-
const variants = await
|
|
169
|
-
return
|
|
158
|
+
const variants = await findProductVariants(product.id);
|
|
159
|
+
return NextResponse.json({
|
|
170
160
|
data: { ...product, variants },
|
|
171
161
|
});
|
|
172
162
|
}
|
|
173
163
|
catch (error) {
|
|
174
164
|
console.error('[Admin Products API] getProduct error:', error);
|
|
175
|
-
return
|
|
165
|
+
return NextResponse.json({ error: 'Failed to fetch product', code: 'INTERNAL_ERROR' }, { status: 500 });
|
|
176
166
|
}
|
|
177
167
|
}
|
|
178
168
|
/**
|
|
@@ -180,7 +170,7 @@ async function getProduct(request, { params }) {
|
|
|
180
170
|
*
|
|
181
171
|
* Update a product by ID.
|
|
182
172
|
*/
|
|
183
|
-
async function PUT(request, { params }) {
|
|
173
|
+
export async function PUT(request, { params }) {
|
|
184
174
|
const authError = await requireAdmin();
|
|
185
175
|
if (authError)
|
|
186
176
|
return authError;
|
|
@@ -188,9 +178,9 @@ async function PUT(request, { params }) {
|
|
|
188
178
|
const { id } = await params;
|
|
189
179
|
const body = await request.json();
|
|
190
180
|
// Check product exists
|
|
191
|
-
const existing = await
|
|
181
|
+
const existing = await findProductById(id);
|
|
192
182
|
if (!existing) {
|
|
193
|
-
return
|
|
183
|
+
return NextResponse.json({ error: 'Product not found', code: 'NOT_FOUND' }, { status: 404 });
|
|
194
184
|
}
|
|
195
185
|
// Build update data
|
|
196
186
|
const updateData = {};
|
|
@@ -219,12 +209,12 @@ async function PUT(request, { params }) {
|
|
|
219
209
|
updateData.metaDescription = body.metaDescription || null;
|
|
220
210
|
if (body.metaKeywords !== undefined)
|
|
221
211
|
updateData.metaKeywords = body.metaKeywords || [];
|
|
222
|
-
const product = await
|
|
223
|
-
return
|
|
212
|
+
const product = await updateProduct(id, updateData);
|
|
213
|
+
return NextResponse.json({ success: true, data: product });
|
|
224
214
|
}
|
|
225
215
|
catch (error) {
|
|
226
216
|
console.error('[Admin Products API] PUT error:', error);
|
|
227
|
-
return
|
|
217
|
+
return NextResponse.json({ error: 'Failed to update product', code: 'INTERNAL_ERROR' }, { status: 500 });
|
|
228
218
|
}
|
|
229
219
|
}
|
|
230
220
|
/**
|
|
@@ -232,21 +222,21 @@ async function PUT(request, { params }) {
|
|
|
232
222
|
*
|
|
233
223
|
* Delete a product by ID.
|
|
234
224
|
*/
|
|
235
|
-
async function DELETE(request, { params }) {
|
|
225
|
+
export async function DELETE(request, { params }) {
|
|
236
226
|
const authError = await requireAdmin();
|
|
237
227
|
if (authError)
|
|
238
228
|
return authError;
|
|
239
229
|
try {
|
|
240
230
|
const { id } = await params;
|
|
241
|
-
const deleted = await
|
|
231
|
+
const deleted = await deleteProduct(id);
|
|
242
232
|
if (!deleted) {
|
|
243
|
-
return
|
|
233
|
+
return NextResponse.json({ error: 'Product not found', code: 'NOT_FOUND' }, { status: 404 });
|
|
244
234
|
}
|
|
245
|
-
return
|
|
235
|
+
return NextResponse.json({ success: true });
|
|
246
236
|
}
|
|
247
237
|
catch (error) {
|
|
248
238
|
console.error('[Admin Products API] DELETE error:', error);
|
|
249
|
-
return
|
|
239
|
+
return NextResponse.json({ error: 'Failed to delete product', code: 'INTERNAL_ERROR' }, { status: 500 });
|
|
250
240
|
}
|
|
251
241
|
}
|
|
252
242
|
// =============================================================================
|
|
@@ -257,7 +247,7 @@ async function DELETE(request, { params }) {
|
|
|
257
247
|
*
|
|
258
248
|
* Add a variant to a product.
|
|
259
249
|
*/
|
|
260
|
-
async function addVariant(request, { params }) {
|
|
250
|
+
export async function addVariant(request, { params }) {
|
|
261
251
|
const authError = await requireAdmin();
|
|
262
252
|
if (authError)
|
|
263
253
|
return authError;
|
|
@@ -265,15 +255,15 @@ async function addVariant(request, { params }) {
|
|
|
265
255
|
const { id } = await params;
|
|
266
256
|
const body = await request.json();
|
|
267
257
|
// Check product exists
|
|
268
|
-
const product = await
|
|
258
|
+
const product = await findProductById(id);
|
|
269
259
|
if (!product) {
|
|
270
|
-
return
|
|
260
|
+
return NextResponse.json({ error: 'Product not found', code: 'NOT_FOUND' }, { status: 404 });
|
|
271
261
|
}
|
|
272
262
|
// Validate required fields
|
|
273
263
|
if (!body.sku || !body.name) {
|
|
274
|
-
return
|
|
264
|
+
return NextResponse.json({ error: 'SKU and name are required', code: 'VALIDATION_ERROR' }, { status: 400 });
|
|
275
265
|
}
|
|
276
|
-
const variant = await
|
|
266
|
+
const variant = await createProductVariant({
|
|
277
267
|
productId: id,
|
|
278
268
|
sku: body.sku,
|
|
279
269
|
name: body.name,
|
|
@@ -283,13 +273,13 @@ async function addVariant(request, { params }) {
|
|
|
283
273
|
});
|
|
284
274
|
// Mark product as having variants if not already
|
|
285
275
|
if (!product.hasVariants) {
|
|
286
|
-
await
|
|
276
|
+
await updateProduct(id, { hasVariants: true });
|
|
287
277
|
}
|
|
288
|
-
return
|
|
278
|
+
return NextResponse.json({ success: true, data: variant }, { status: 201 });
|
|
289
279
|
}
|
|
290
280
|
catch (error) {
|
|
291
281
|
console.error('[Admin Products API] addVariant error:', error);
|
|
292
|
-
return
|
|
282
|
+
return NextResponse.json({ error: 'Failed to create variant', code: 'INTERNAL_ERROR' }, { status: 500 });
|
|
293
283
|
}
|
|
294
284
|
}
|
|
295
285
|
/**
|
|
@@ -297,7 +287,7 @@ async function addVariant(request, { params }) {
|
|
|
297
287
|
*
|
|
298
288
|
* Update a variant.
|
|
299
289
|
*/
|
|
300
|
-
async function updateVariantHandler(request, { params }) {
|
|
290
|
+
export async function updateVariantHandler(request, { params }) {
|
|
301
291
|
const authError = await requireAdmin();
|
|
302
292
|
if (authError)
|
|
303
293
|
return authError;
|
|
@@ -315,15 +305,15 @@ async function updateVariantHandler(request, { params }) {
|
|
|
315
305
|
updateData.inventory = body.inventory;
|
|
316
306
|
if (body.attributes !== undefined)
|
|
317
307
|
updateData.attributes = body.attributes;
|
|
318
|
-
const variant = await
|
|
308
|
+
const variant = await updateProductVariant(variantId, updateData);
|
|
319
309
|
if (!variant) {
|
|
320
|
-
return
|
|
310
|
+
return NextResponse.json({ error: 'Variant not found', code: 'NOT_FOUND' }, { status: 404 });
|
|
321
311
|
}
|
|
322
|
-
return
|
|
312
|
+
return NextResponse.json({ success: true, data: variant });
|
|
323
313
|
}
|
|
324
314
|
catch (error) {
|
|
325
315
|
console.error('[Admin Products API] updateVariant error:', error);
|
|
326
|
-
return
|
|
316
|
+
return NextResponse.json({ error: 'Failed to update variant', code: 'INTERNAL_ERROR' }, { status: 500 });
|
|
327
317
|
}
|
|
328
318
|
}
|
|
329
319
|
/**
|
|
@@ -331,21 +321,21 @@ async function updateVariantHandler(request, { params }) {
|
|
|
331
321
|
*
|
|
332
322
|
* Delete a variant.
|
|
333
323
|
*/
|
|
334
|
-
async function deleteVariantHandler(request, { params }) {
|
|
324
|
+
export async function deleteVariantHandler(request, { params }) {
|
|
335
325
|
const authError = await requireAdmin();
|
|
336
326
|
if (authError)
|
|
337
327
|
return authError;
|
|
338
328
|
try {
|
|
339
329
|
const { variantId } = await params;
|
|
340
|
-
const deleted = await
|
|
330
|
+
const deleted = await deleteProductVariant(variantId);
|
|
341
331
|
if (!deleted) {
|
|
342
|
-
return
|
|
332
|
+
return NextResponse.json({ error: 'Variant not found', code: 'NOT_FOUND' }, { status: 404 });
|
|
343
333
|
}
|
|
344
|
-
return
|
|
334
|
+
return NextResponse.json({ success: true });
|
|
345
335
|
}
|
|
346
336
|
catch (error) {
|
|
347
337
|
console.error('[Admin Products API] deleteVariant error:', error);
|
|
348
|
-
return
|
|
338
|
+
return NextResponse.json({ error: 'Failed to delete variant', code: 'INTERNAL_ERROR' }, { status: 500 });
|
|
349
339
|
}
|
|
350
340
|
}
|
|
351
341
|
// =============================================================================
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"products.js","sourceRoot":"","sources":["../../../src/admin/api/products.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"products.js","sourceRoot":"","sources":["../../../src/admin/api/products.ts"],"names":[],"mappings":"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"}
|