PluginProbe
FluentCart A New Era of eCommerce – Faster, Lighter, and Simpler / 1.7.0
FluentCart A New Era of eCommerce – Faster, Lighter, and Simpler v1.7.0
1.7.0 1.6.6 1.6.5 1.6.4 1.6.3 1.6.2 1.6.1 1.6.0 1.5.4 1.5.5 1.5.3 1.5.2 1.5.1 1.5.0 1.4.2 1.4.1 1.4.0 1.3.28 1.3.27 1.3.26 1.3.25 1.3.23 1.3.22 1.3.21 1.3.20 All 50 releases
← All changes | app/Http/Routes/api.php +70 -9 1.5.0 → 1.7.0 View file →
@@ -11,11 +11,13 @@
11 11 use FluentCart\App\Http\Controllers\AppControllers\AppController;
12 12 use FluentCart\App\Http\Controllers\CheckoutFieldsController;
13 13 use FluentCart\App\Http\Controllers\CustomerController;
14 14 use FluentCart\App\Http\Controllers\DashboardController;
15 +use FluentCart\App\Http\Controllers\DataBackfillController;
15 16 use FluentCart\App\Http\Controllers\EmailNotificationController;
16 17 use FluentCart\App\Http\Controllers\FileUploadController;
17 18 use FluentCart\App\Http\Controllers\IntegrationController;
19 +use FluentCart\App\Http\Controllers\RenewalController;
18 20 use FluentCart\App\Http\Controllers\LabelController;
19 21 use FluentCart\App\Http\Controllers\McpSettingsController;
20 22 use FluentCart\App\Http\Controllers\ModuleSettingsController;
21 23 use FluentCart\App\Http\Controllers\NotesController;
@@ -32,8 +34,9 @@
32 34 use FluentCart\App\Http\Controllers\TaxRateController;
33 35 use FluentCart\App\Http\Controllers\TemplateController;
34 36 use FluentCart\App\Http\Controllers\VariantController;
35 37 use FluentCart\App\Http\Controllers\WidgetsController;
38 +use FluentCart\App\Http\Controllers\ProductReviewController;
36 39 use FluentCart\App\Modules\PaymentMethods\PayPalGateway\ConnectConfig;
37 40 use FluentCart\Framework\Http\Router;
38 41 use \FluentCart\App\Http\Controllers\PaymentMethodController;
39 42 use \FluentCart\App\Http\Controllers\ActivityController;
@@ -49,8 +52,12 @@
49 52 $router->prefix('dashboard')->withPolicy('AdminPolicy')->group(function (Router $router) {
50 53 $router->get('/', [DashboardController::class, 'getOnboardingData']);
51 54 });
52 55
56 +$router->prefix('data-backfills')->withPolicy('AdminPolicy')->group(function (Router $router) {
57 + $router->post('/run', [DataBackfillController::class, 'run']);
58 +});
59 +
53 60 $router->prefix('dashboard')->withPolicy('DashboardPolicy')->group(function (Router $router) {
54 61 $router->get('/stats', [DashboardController::class, 'getDashboardStats'])->meta([
55 62 'permissions' => 'dashboard_stats/view'
56 63 ]);
@@ -547,9 +554,9 @@
547 554 'permissions' => 'orders/create'
548 555 ]);
549 556
550 557 $router->post('/do-bulk-action', [OrderController::class, 'handleBulkActions'])->meta([
551 - 'permissions' => 'orders/manage'
558 + 'permissions' => 'orders/delete' // every accepted action deletes orders — same gate as DELETE /{order_id}
552 559 ]);
553 560
554 561 $router->post('/{order}/mark-as-paid', [OrderController::class, 'markAsPaid'])->meta([
555 562 'permissions' => 'orders/manage'
@@ -604,11 +611,13 @@
604 611 $router->post('/{order}/transactions/{transaction_id}/accept-dispute/', [OrderController::class, 'acceptDispute'])->meta([
605 612 'permissions' => 'orders/manage'
606 613 ]);
607 614
608 - $router->get('/{id}/transactions/{transaction_id}', [OrderController::class, 'getDetails'])->meta([
609 - 'permissions' => 'orders/view'
610 - ]);
615 + $router->get('/{id}/transactions/{transaction_id}', [OrderController::class, 'getTransactionDetails'])
616 + ->int('id', 'transaction_id')
617 + ->meta([
618 + 'permissions' => 'orders/view'
619 + ]);
611 620
612 621 $router->put('/{order}/address/{id}', [OrderController::class, 'updateOrderAddress'])->meta([
613 622 'permissions' => 'orders/manage'
614 623 ]);
@@ -616,8 +625,12 @@
616 625 $router->put('/{order}/transactions/{transaction}/status', [OrderController::class, 'updateTransactionStatus'])->meta([
617 626 'permissions' => 'orders/manage'
618 627 ]);
619 628
629 + $router->post('/{order}/transactions/{transaction}/sync', [OrderController::class, 'syncPendingTransaction'])->meta([
630 + 'permissions' => 'orders/manage'
631 + ]);
632 +
620 633 $router->post('/{order}/create-custom', [OrderController::class, 'createCustom'])->int('id')->meta([
621 634 'permissions' => 'orders/create'
622 635 ]);
623 636
@@ -630,9 +643,26 @@
630 643 ]);
631 644
632 645 });
633 646
647 +$router->prefix('renewals')->withPolicy('OrderPolicy')->group(function (Router $router) {
648 + $router->get('/', [RenewalController::class, 'index'])->meta([
649 + 'permissions' => 'orders/view'
650 + ]);
634 651
652 + $router->get('/{id}', [RenewalController::class, 'show'])->int('id')->meta([
653 + 'permissions' => 'orders/view'
654 + ]);
655 +
656 + $router->post('/{order}/void', [RenewalController::class, 'void'])->meta([
657 + 'permissions' => 'orders/manage'
658 + ]);
659 +
660 + $router->post('/{order}/resend', [RenewalController::class, 'resend'])->meta([
661 + 'permissions' => 'orders/manage'
662 + ]);
663 +});
664 +
635 665 $router->prefix('labels')->withPolicy('LabelPolicy')->group(function (Router $router) {
636 666 $router->get('/', [LabelController::class, 'index'])->meta([
637 667 'permissions' => 'labels/view'
638 668 ]);
@@ -804,10 +834,10 @@
804 834 });
805 835
806 836 $router->post('/upload-editor-file', [FileUploadController::class, 'uploadEditorFile'])->withPolicy('AdminPolicy');
807 837
808 -$router->prefix('notes')->withPolicy('AdminPolicy')->group(function (Router $router) {
809 - $router->post('/attach', [NotesController::class, 'attach']);
838 +$router->prefix('notes')->withPolicy('OrderPolicy')->group(function (Router $router) {
839 + $router->post('/attach', [NotesController::class, 'attach'])->meta(['permissions' => 'orders/manage']);
810 840 });
811 841
812 842 $router->prefix('app')->withPolicy('AdminPolicy')->group(function (Router $router) {
813 843 $router->get('init', [AppController::class, 'init']);
@@ -891,11 +921,8 @@
891 921 ]);
892 922 $router->delete('country/rate/{id}', [TaxRateController::class, 'delete'])->int('id')->meta([
893 923 'permissions' => 'store/sensitive'
894 924 ]);
895 - $router->delete('country/{country_code}', [TaxRateController::class, 'deleteCountry'])->meta([
896 - 'permissions' => 'store/sensitive'
897 - ]);
898 925 $router->post('country-status/{country_code}', [TaxRateController::class, 'updateCountryStatus'])->meta([
899 926 'permissions' => 'store/sensitive'
900 927 ]);
901 928 $router->get('country-tax-id/{country_code}', [TaxRateController::class, 'getCountryTaxId'])->meta([
@@ -950,5 +977,39 @@
950 977
951 978 $router->prefix('checkout-fields')->withPolicy('StoreSensitivePolicy')->group(function (Router $router) {
952 979 $router->get('get-fields', [CheckoutFieldsController::class, 'getFields']);
953 980 $router->post('save-fields', [CheckoutFieldsController::class, 'saveFields']);
981 +});
982 +
983 +// Product Reviews routes
984 +$router->prefix('reviews')->withPolicy('ReviewPolicy')->group(function (Router $router) {
985 + $router->get('/', [ProductReviewController::class, 'index'])->meta([
986 + 'permissions' => 'reviews/manage'
987 + ]);
988 + $router->get('/stats', [ProductReviewController::class, 'stats'])->meta([
989 + 'permissions' => 'reviews/manage'
990 + ]);
991 + $router->get('/{id}', [ProductReviewController::class, 'find'])->int('id')->meta([
992 + 'permissions' => 'reviews/manage'
993 + ]);
994 + $router->put('/{id}', [ProductReviewController::class, 'update'])->int('id')->meta([
995 + 'permissions' => 'reviews/manage'
996 + ]);
997 + $router->delete('/{id}', [ProductReviewController::class, 'delete'])->int('id')->meta([
998 + 'permissions' => 'reviews/manage'
999 + ]);
1000 + $router->post('/bulk-action', [ProductReviewController::class, 'bulkAction'])->meta([
1001 + 'permissions' => 'reviews/manage'
1002 + ]);
1003 + $router->post('/{id}/reply', [ProductReviewController::class, 'reply'])->int('id')->meta([
1004 + 'permissions' => 'reviews/manage'
1005 + ]);
1006 + $router->delete('/{reviewId}/replies/{replyId}', [ProductReviewController::class, 'deleteReply'])->int('reviewId')->int('replyId')->meta([
1007 + 'permissions' => 'reviews/manage'
1008 + ]);
1009 + $router->post('/bulk-reply', [ProductReviewController::class, 'bulkReply'])->meta([
1010 + 'permissions' => 'reviews/manage'
1011 + ]);
1012 + $router->post('/', [ProductReviewController::class, 'create'])->meta([
1013 + 'permissions' => 'reviews/manage'
1014 + ]);
954 1015 });