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 +65 -9 1.5.3 → 1.7.0 View file →
@@ -15,8 +15,9 @@
15 15 use FluentCart\App\Http\Controllers\DataBackfillController;
16 16 use FluentCart\App\Http\Controllers\EmailNotificationController;
17 17 use FluentCart\App\Http\Controllers\FileUploadController;
18 18 use FluentCart\App\Http\Controllers\IntegrationController;
19 +use FluentCart\App\Http\Controllers\RenewalController;
19 20 use FluentCart\App\Http\Controllers\LabelController;
20 21 use FluentCart\App\Http\Controllers\McpSettingsController;
21 22 use FluentCart\App\Http\Controllers\ModuleSettingsController;
22 23 use FluentCart\App\Http\Controllers\NotesController;
@@ -33,8 +34,9 @@
33 34 use FluentCart\App\Http\Controllers\TaxRateController;
34 35 use FluentCart\App\Http\Controllers\TemplateController;
35 36 use FluentCart\App\Http\Controllers\VariantController;
36 37 use FluentCart\App\Http\Controllers\WidgetsController;
38 +use FluentCart\App\Http\Controllers\ProductReviewController;
37 39 use FluentCart\App\Modules\PaymentMethods\PayPalGateway\ConnectConfig;
38 40 use FluentCart\Framework\Http\Router;
39 41 use \FluentCart\App\Http\Controllers\PaymentMethodController;
40 42 use \FluentCart\App\Http\Controllers\ActivityController;
@@ -552,9 +554,9 @@
552 554 'permissions' => 'orders/create'
553 555 ]);
554 556
555 557 $router->post('/do-bulk-action', [OrderController::class, 'handleBulkActions'])->meta([
556 - 'permissions' => 'orders/manage'
558 + 'permissions' => 'orders/delete' // every accepted action deletes orders — same gate as DELETE /{order_id}
557 559 ]);
558 560
559 561 $router->post('/{order}/mark-as-paid', [OrderController::class, 'markAsPaid'])->meta([
560 562 'permissions' => 'orders/manage'
@@ -609,11 +611,13 @@
609 611 $router->post('/{order}/transactions/{transaction_id}/accept-dispute/', [OrderController::class, 'acceptDispute'])->meta([
610 612 'permissions' => 'orders/manage'
611 613 ]);
612 614
613 - $router->get('/{id}/transactions/{transaction_id}', [OrderController::class, 'getDetails'])->meta([
614 - 'permissions' => 'orders/view'
615 - ]);
615 + $router->get('/{id}/transactions/{transaction_id}', [OrderController::class, 'getTransactionDetails'])
616 + ->int('id', 'transaction_id')
617 + ->meta([
618 + 'permissions' => 'orders/view'
619 + ]);
616 620
617 621 $router->put('/{order}/address/{id}', [OrderController::class, 'updateOrderAddress'])->meta([
618 622 'permissions' => 'orders/manage'
619 623 ]);
@@ -621,8 +625,12 @@
621 625 $router->put('/{order}/transactions/{transaction}/status', [OrderController::class, 'updateTransactionStatus'])->meta([
622 626 'permissions' => 'orders/manage'
623 627 ]);
624 628
629 + $router->post('/{order}/transactions/{transaction}/sync', [OrderController::class, 'syncPendingTransaction'])->meta([
630 + 'permissions' => 'orders/manage'
631 + ]);
632 +
625 633 $router->post('/{order}/create-custom', [OrderController::class, 'createCustom'])->int('id')->meta([
626 634 'permissions' => 'orders/create'
627 635 ]);
628 636
@@ -635,9 +643,26 @@
635 643 ]);
636 644
637 645 });
638 646
647 +$router->prefix('renewals')->withPolicy('OrderPolicy')->group(function (Router $router) {
648 + $router->get('/', [RenewalController::class, 'index'])->meta([
649 + 'permissions' => 'orders/view'
650 + ]);
639 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 +
640 665 $router->prefix('labels')->withPolicy('LabelPolicy')->group(function (Router $router) {
641 666 $router->get('/', [LabelController::class, 'index'])->meta([
642 667 'permissions' => 'labels/view'
643 668 ]);
@@ -809,10 +834,10 @@
809 834 });
810 835
811 836 $router->post('/upload-editor-file', [FileUploadController::class, 'uploadEditorFile'])->withPolicy('AdminPolicy');
812 837
813 -$router->prefix('notes')->withPolicy('AdminPolicy')->group(function (Router $router) {
814 - $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']);
815 840 });
816 841
817 842 $router->prefix('app')->withPolicy('AdminPolicy')->group(function (Router $router) {
818 843 $router->get('init', [AppController::class, 'init']);
@@ -896,11 +921,8 @@
896 921 ]);
897 922 $router->delete('country/rate/{id}', [TaxRateController::class, 'delete'])->int('id')->meta([
898 923 'permissions' => 'store/sensitive'
899 924 ]);
900 - $router->delete('country/{country_code}', [TaxRateController::class, 'deleteCountry'])->meta([
901 - 'permissions' => 'store/sensitive'
902 - ]);
903 925 $router->post('country-status/{country_code}', [TaxRateController::class, 'updateCountryStatus'])->meta([
904 926 'permissions' => 'store/sensitive'
905 927 ]);
906 928 $router->get('country-tax-id/{country_code}', [TaxRateController::class, 'getCountryTaxId'])->meta([
@@ -955,5 +977,39 @@
955 977
956 978 $router->prefix('checkout-fields')->withPolicy('StoreSensitivePolicy')->group(function (Router $router) {
957 979 $router->get('get-fields', [CheckoutFieldsController::class, 'getFields']);
958 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 + ]);
959 1015 });