diff --git a/app/Console/Commands/SetupDevEnvironment.php b/app/Console/Commands/SetupDevEnvironment.php index f036e0a4..6d28a0df 100644 --- a/app/Console/Commands/SetupDevEnvironment.php +++ b/app/Console/Commands/SetupDevEnvironment.php @@ -805,6 +805,10 @@ class SetupDevEnvironment extends Command 'name' => 'registration', 'value' => 1, ], + [ + 'name' => 'app_payments_active', + 'value' => 1, + ], [ 'name' => 'storage_limitation', 'value' => 1, diff --git a/app/Http/Controllers/Oasis/AdminController.php b/app/Http/Controllers/Oasis/AdminController.php index a3dc7fc3..979a05e0 100644 --- a/app/Http/Controllers/Oasis/AdminController.php +++ b/app/Http/Controllers/Oasis/AdminController.php @@ -3,6 +3,7 @@ namespace App\Http\Controllers\Oasis; use App\Http\Controllers\Controller; +use App\Http\Requests\Admin\CreateUserByAdmin; use App\Http\Resources\UserResource; use App\Models\User; use App\Models\UserSettings; @@ -45,7 +46,7 @@ class AdminController extends Controller * @param Request $request * @return Application|ResponseFactory|Response */ - public function register_new_client(Request $request) + public function create_order(Request $request) { // Create user $newbie = User::create([ @@ -91,4 +92,33 @@ class AdminController extends Controller new UserResource($newbie), 201 ); } + + /** + * Create new user by admin + * + * @param CreateUserByAdmin $request + * @return UserResource|Application|ResponseFactory|Response + */ + public function create_user(CreateUserByAdmin $request) + { + // Create user + $user = User::forceCreate([ + 'role' => $request->role, + 'email' => $request->email, + 'password' => \Illuminate\Support\Facades\Hash::make($request->password), + ]); + + UserSettings::unguard(); + + $user + ->settings() + ->create([ + 'name' => $request->name, + 'avatar' => store_avatar($request, 'avatar'), + 'storage_capacity' => $request->storage_capacity, + 'payment_activation' => 1, + ]); + + return response(new UserResource($user), 201); + } } diff --git a/app/Http/Controllers/Oasis/SubscriptionController.php b/app/Http/Controllers/Oasis/SubscriptionController.php index f0a484f0..714a5754 100644 --- a/app/Http/Controllers/Oasis/SubscriptionController.php +++ b/app/Http/Controllers/Oasis/SubscriptionController.php @@ -60,24 +60,43 @@ class SubscriptionController extends Controller */ public function subscribe(Request $request, SubscriptionRequest $order) { - // Create subscription - $order->user - ->newSubscription('main', $order->requested_plan) - ->create( - $this->stripe->getOrSetDefaultPaymentMethod($request, $order->user) - ); + // Make subscription from subscription request + if ($order->exists) { - // Get requested plan - $plan = $this->stripe - ->getPlan($order->requested_plan); + // Create subscription + $order->user + ->newSubscription('main', $order->requested_plan) + ->create( + $this->stripe->getOrSetDefaultPaymentMethod($request, $order->user) + ); - // Update Subscription request - $order->update([ - 'status' => 'payed' - ]); + // Update Subscription request + $order->update(['status' => 'payed']); + + $user = $order->user; + } + + // Make subscription after user sign up and pay for the plan + if (!$order->exists) { + $user = Auth::user(); + + // Set user billing + $user->setBilling($request->billing); + + // Update stripe customer billing info + $this->stripe->updateCustomerDetails($user); + + // Make subscription + $this->stripe->createOrReplaceSubscription($request, $user); + } + + // Get plan + $plan = $this->stripe->getPlan( + $order->requested_plan ?? $request->input('plan.data.id') + ); // Update user storage limit - $order->user + $user ->settings() ->update([ 'storage_capacity' => $plan['product']['metadata']['capacity'], diff --git a/app/Http/Resources/UserResource.php b/app/Http/Resources/UserResource.php index 910d916b..d89f969d 100644 --- a/app/Http/Resources/UserResource.php +++ b/app/Http/Resources/UserResource.php @@ -42,15 +42,18 @@ class UserResource extends JsonResource 'id' => $this->id, 'type' => 'settings', 'attributes' => [ - 'avatar' => $this->settings->avatar, - 'name' => $this->settings->name, - 'address' => $this->settings->address, - 'state' => $this->settings->state, - 'city' => $this->settings->city, - 'postal_code' => $this->settings->postal_code, - 'country' => $this->settings->country, - 'phone_number' => $this->settings->phone_number, - 'timezone' => $this->settings->timezone + 'avatar' => $this->settings->avatar, + 'name' => $this->settings->name, + 'address' => $this->settings->address, + 'state' => $this->settings->state, + 'city' => $this->settings->city, + 'postal_code' => $this->settings->postal_code, + 'country' => $this->settings->country, + 'phone_number' => $this->settings->phone_number, + 'timezone' => $this->settings->timezone, + + // OasisDrive + 'payment_activation' => $this->settings->payment_activation ] ] ], diff --git a/public/mix-manifest.json b/public/mix-manifest.json index 83d4d921..6da6bf85 100644 --- a/public/mix-manifest.json +++ b/public/mix-manifest.json @@ -3,7 +3,7 @@ "/css/app.css": "/css/app.css", "/chunks/admin.js": "/chunks/admin.js?id=7875b08fc6fb75a7ad1f", "/chunks/admin-account.js": "/chunks/admin-account.js?id=b1d2758e439eb303f5ee", - "/chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chu~9fa266bc.js": "/chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chu~9fa266bc.js?id=81dea7680f4bfde55278", + "/chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chu~74bf0fcb.js": "/chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chu~74bf0fcb.js?id=6b6737a58e371fc4434b", "/chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chu~c7a13fb0.js": "/chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chu~c7a13fb0.js?id=62b552a0492fe95b2223", "/chunks/admin-account~chunks/app-setup~chunks/billings-detail~chunks/create-new-password~chunks/datab~a001bb84.js": "/chunks/admin-account~chunks/app-setup~chunks/billings-detail~chunks/create-new-password~chunks/datab~a001bb84.js?id=0cad8279d29d79cd0e82", "/chunks/admin~chunks/files~chunks/settings~chunks/shared-files~chunks/shared/file-browser.js": "/chunks/admin~chunks/files~chunks/settings~chunks/shared-files~chunks/shared/file-browser.js?id=f1e1597205ff30d4fa4a", @@ -31,10 +31,10 @@ "/chunks/dynamic-page.js": "/chunks/dynamic-page.js?id=6dccc2158cc6278f683d", "/chunks/environment-setup.js": "/chunks/environment-setup.js?id=123776e4ad431b2af406", "/chunks/files.js": "/chunks/files.js?id=40b4464ce393cb112111", + "/chunks/files~chunks/oasis/platba~chunks/settings-subscription~chunks/shared-files~chunks/shared/file~9d1352fd.js": "/chunks/files~chunks/oasis/platba~chunks/settings-subscription~chunks/shared-files~chunks/shared/file~9d1352fd.js?id=4030b241faac6b31341f", "/chunks/files~chunks/platform~chunks/shared-files~chunks/shared/file-browser.js": "/chunks/files~chunks/platform~chunks/shared-files~chunks/shared/file-browser.js?id=c2c86f2168e863fbd49e", "/chunks/files~chunks/platform~chunks/shared~chunks/shared-files~chunks/shared/file-browser.js": "/chunks/files~chunks/platform~chunks/shared~chunks/shared-files~chunks/shared/file-browser.js?id=885dd88f0e8d5c499a48", "/chunks/files~chunks/platform~chunks/shared~chunks/shared-files~chunks/shared/file-browser~chunks/sha~8510f6c9.js": "/chunks/files~chunks/platform~chunks/shared~chunks/shared-files~chunks/shared/file-browser~chunks/sha~8510f6c9.js?id=02131dc9a3e5fb2ccfcc", - "/chunks/files~chunks/settings-subscription~chunks/shared-files~chunks/shared/file-browser~chunks/user~9058a49f.js": "/chunks/files~chunks/settings-subscription~chunks/shared-files~chunks/shared/file-browser~chunks/user~9058a49f.js?id=31a17ad1d2536342abbe", "/chunks/files~chunks/shared-files~chunks/shared/file-browser.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser.js?id=07de5a0fc9944e819154", "/chunks/files~chunks/shared-files~chunks/shared/file-browser~chunks/shared/single-file.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser~chunks/shared/single-file.js?id=150772c0920d1a8694cc", "/chunks/files~chunks/shared/file-browser.js": "/chunks/files~chunks/shared/file-browser.js?id=b2a355bb27f40ee0e386", @@ -43,6 +43,8 @@ "/chunks/installation-disclaimer.js": "/chunks/installation-disclaimer.js?id=7543bc0ebd67a282779a", "/chunks/invoices.js": "/chunks/invoices.js?id=98c2b0d4a83f4e0cc6d9", "/chunks/not-found-shared.js": "/chunks/not-found-shared.js?id=7fc7f9b6f10bdfac770e", + "/chunks/oasis/platba.js": "/chunks/oasis/platba.js?id=e92773ec90d60d1cd788", + "/chunks/oasis/platba~chunks/upgrade-billing~chunks/upgrade-plan.js": "/chunks/oasis/platba~chunks/upgrade-billing~chunks/upgrade-plan.js?id=443cc6055897091f6676", "/chunks/page-edit.js": "/chunks/page-edit.js?id=234551fa36d21e29606e", "/chunks/pages.js": "/chunks/pages.js?id=eddb0354939e959cea11", "/chunks/plan.js": "/chunks/plan.js?id=56ff26197c3ddab55605", @@ -57,7 +59,7 @@ "/chunks/profile~chunks/settings-password.js": "/chunks/profile~chunks/settings-password.js?id=9202f2cff7c80a561718", "/chunks/purchase-code.js": "/chunks/purchase-code.js?id=01dafc8397bda91a47f5", "/chunks/settings.js": "/chunks/settings.js?id=713564bcdbe44aa66df1", - "/chunks/settings-create-payment-methods.js": "/chunks/settings-create-payment-methods.js?id=9c088cb1b14836d13648", + "/chunks/settings-create-payment-methods.js": "/chunks/settings-create-payment-methods.js?id=25a7e5e91b236debdae9", "/chunks/settings-invoices.js": "/chunks/settings-invoices.js?id=c765f8563393c27bc6a6", "/chunks/settings-password.js": "/chunks/settings-password.js?id=201b3cbada273dacd46e", "/chunks/settings-payment-methods.js": "/chunks/settings-payment-methods.js?id=535472f0e43f64ec0ccc", @@ -69,278 +71,67 @@ "/chunks/shared/authenticate.js": "/chunks/shared/authenticate.js?id=3d5c7754d438830a4204", "/chunks/shared/file-browser.js": "/chunks/shared/file-browser.js?id=3127fab4cfd3d5f00a72", "/chunks/shared/single-file.js": "/chunks/shared/single-file.js?id=e8aedb75df7fe227d693", - "/chunks/sign-in.js": "/chunks/sign-in.js?id=92a1de80f254cfc9ac91", - "/chunks/sign-up.js": "/chunks/sign-up.js?id=a51dd0f046981790d60c", + "/chunks/sign-in.js": "/chunks/sign-in.js?id=96596a96b8c810d752e2", + "/chunks/sign-up.js": "/chunks/sign-up.js?id=2d6782121f7dde627401", "/chunks/stripe-credentials.js": "/chunks/stripe-credentials.js?id=6eb1bdf3942d7b2dd06f", "/chunks/subscription-plans.js": "/chunks/subscription-plans.js?id=8048188a201c41f248c6", "/chunks/subscription-service.js": "/chunks/subscription-service.js?id=90c1aa9431689a89eb3d", - "/chunks/upgrade-billing.js": "/chunks/upgrade-billing.js?id=830456726847f435144e", - "/chunks/upgrade-billing~chunks/upgrade-plan.js": "/chunks/upgrade-billing~chunks/upgrade-plan.js?id=2b555924c945cbcd23f5", - "/chunks/upgrade-plan.js": "/chunks/upgrade-plan.js?id=9c61721d5e30ef544377", + "/chunks/upgrade-billing.js": "/chunks/upgrade-billing.js?id=db93044d81a1e1b75cf2", + "/chunks/upgrade-plan.js": "/chunks/upgrade-plan.js?id=35939b91f0dd6357b9c2", "/chunks/user.js": "/chunks/user.js?id=8e96e769d9df5c5f7364", - "/chunks/user-create.js": "/chunks/user-create.js?id=421558158a756e7f87b0", + "/chunks/user-create.js": "/chunks/user-create.js?id=15fa75e2184472b203ef", "/chunks/user-delete.js": "/chunks/user-delete.js?id=78a10edafd58a4abad26", "/chunks/user-detail.js": "/chunks/user-detail.js?id=039a3d421f7d8b8b3ce3", "/chunks/user-invoices.js": "/chunks/user-invoices.js?id=8da7b23dc11d9e2e6c99", "/chunks/user-password.js": "/chunks/user-password.js?id=31bcde6d4cfb29b1c894", "/chunks/user-storage.js": "/chunks/user-storage.js?id=f1d8f104599fa982991e", "/chunks/user-subscription.js": "/chunks/user-subscription.js?id=3b8974eb8af615d517f4", - "/chunks/users.js": "/chunks/users.js?id=5a137097e3c880c7c73d", - "/vendors~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-i~68e3c6cf.js": "/vendors~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-i~68e3c6cf.js?id=b490efdc8470a6c2f625", - "/vendors~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-i~a4a4a595.js": "/vendors~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-i~a4a4a595.js?id=be99c10088b00578891b", - "/vendors~chunks/files~chunks/platform~chunks/shared~chunks/shared-files~chunks/shared/file-browser~ch~52c14f2e.js": "/vendors~chunks/files~chunks/platform~chunks/shared~chunks/shared-files~chunks/shared/file-browser~ch~52c14f2e.js?id=66afa0e341251a68c3d3", - "/js/main.15462e4af4d55df66973.hot-update.js": "/js/main.15462e4af4d55df66973.hot-update.js", - "/js/main.cbbb4b7ba2d3799084b1.hot-update.js": "/js/main.cbbb4b7ba2d3799084b1.hot-update.js", - "/chunks/user-create.cbbb4b7ba2d3799084b1.hot-update.js": "/chunks/user-create.cbbb4b7ba2d3799084b1.hot-update.js", - "/chunks/user-create.54a4449fe2276fba9662.hot-update.js": "/chunks/user-create.54a4449fe2276fba9662.hot-update.js", - "/js/main.8aa438d501df2f11f4fb.hot-update.js": "/js/main.8aa438d501df2f11f4fb.hot-update.js", - "/js/main.c819f952ef8d64da2c7f.hot-update.js": "/js/main.c819f952ef8d64da2c7f.hot-update.js", - "/chunks/user-create.c819f952ef8d64da2c7f.hot-update.js": "/chunks/user-create.c819f952ef8d64da2c7f.hot-update.js", - "/js/main.3fa488b1ce9a72e510d9.hot-update.js": "/js/main.3fa488b1ce9a72e510d9.hot-update.js", - "/chunks/user-create.3fa488b1ce9a72e510d9.hot-update.js": "/chunks/user-create.3fa488b1ce9a72e510d9.hot-update.js", - "/chunks/user-create.a5516d3706d718944d86.hot-update.js": "/chunks/user-create.a5516d3706d718944d86.hot-update.js", - "/chunks/user-create.e3b89a488b7f5d464cb6.hot-update.js": "/chunks/user-create.e3b89a488b7f5d464cb6.hot-update.js", - "/js/main.2e41c3c6d72ca60cdfa5.hot-update.js": "/js/main.2e41c3c6d72ca60cdfa5.hot-update.js", - "/chunks/user-create.a71b18b949a40aa877db.hot-update.js": "/chunks/user-create.a71b18b949a40aa877db.hot-update.js", - "/chunks/user-create.919c3693ad6edad72622.hot-update.js": "/chunks/user-create.919c3693ad6edad72622.hot-update.js", - "/chunks/user-create.ff44a8c6547514b0555e.hot-update.js": "/chunks/user-create.ff44a8c6547514b0555e.hot-update.js", - "/chunks/user-create.f71649c0af0138fd392a.hot-update.js": "/chunks/user-create.f71649c0af0138fd392a.hot-update.js", - "/chunks/user-create.a0975461a82aa011ae08.hot-update.js": "/chunks/user-create.a0975461a82aa011ae08.hot-update.js", - "/chunks/user-create.22963a8eb879a70de8e8.hot-update.js": "/chunks/user-create.22963a8eb879a70de8e8.hot-update.js", - "/chunks/user-create.00fae37c8caaf9c4116c.hot-update.js": "/chunks/user-create.00fae37c8caaf9c4116c.hot-update.js", - "/chunks/user-create.bd8ce06e31babb0d83bf.hot-update.js": "/chunks/user-create.bd8ce06e31babb0d83bf.hot-update.js", - "/chunks/user-create.533a9769278591f0a35f.hot-update.js": "/chunks/user-create.533a9769278591f0a35f.hot-update.js", - "/chunks/user-create.4de58d114340c037c334.hot-update.js": "/chunks/user-create.4de58d114340c037c334.hot-update.js", - "/chunks/user-create.bc5c6db3b1f40958cee6.hot-update.js": "/chunks/user-create.bc5c6db3b1f40958cee6.hot-update.js", - "/chunks/user-create.61c4327d1b8cc3882ca3.hot-update.js": "/chunks/user-create.61c4327d1b8cc3882ca3.hot-update.js", - "/chunks/user-create.c7a824a1651301799e6f.hot-update.js": "/chunks/user-create.c7a824a1651301799e6f.hot-update.js", - "/chunks/user-create.a5037bab9efc816329c2.hot-update.js": "/chunks/user-create.a5037bab9efc816329c2.hot-update.js", - "/chunks/user-create.872040ca690570f5940a.hot-update.js": "/chunks/user-create.872040ca690570f5940a.hot-update.js", - "/chunks/user-create.ed26b4426b06a08c6c6f.hot-update.js": "/chunks/user-create.ed26b4426b06a08c6c6f.hot-update.js", - "/chunks/user-create.925215955f57702fc155.hot-update.js": "/chunks/user-create.925215955f57702fc155.hot-update.js", - "/chunks/user-create.a91d2252b68a6c00ef00.hot-update.js": "/chunks/user-create.a91d2252b68a6c00ef00.hot-update.js", - "/chunks/user-create.8d5c86849f2e3abbaa16.hot-update.js": "/chunks/user-create.8d5c86849f2e3abbaa16.hot-update.js", - "/chunks/user-create.d393a841297e7b3b49bc.hot-update.js": "/chunks/user-create.d393a841297e7b3b49bc.hot-update.js", - "/chunks/user-create.fe44ba1ff26e3a796548.hot-update.js": "/chunks/user-create.fe44ba1ff26e3a796548.hot-update.js", - "/chunks/user-create.b84bc5bf54478d757615.hot-update.js": "/chunks/user-create.b84bc5bf54478d757615.hot-update.js", - "/chunks/user-create.858d43e043ecfbf1f34e.hot-update.js": "/chunks/user-create.858d43e043ecfbf1f34e.hot-update.js", - "/chunks/user-create.ebf58013ad50ee56a3c9.hot-update.js": "/chunks/user-create.ebf58013ad50ee56a3c9.hot-update.js", - "/chunks/user-create.522c330a0f5f932859b6.hot-update.js": "/chunks/user-create.522c330a0f5f932859b6.hot-update.js", - "/chunks/user-create.d84da8c0b8db7571999d.hot-update.js": "/chunks/user-create.d84da8c0b8db7571999d.hot-update.js", - "/chunks/user-create.0a7c147f41bbd509a7bb.hot-update.js": "/chunks/user-create.0a7c147f41bbd509a7bb.hot-update.js", - "/chunks/user-create.a74b6607e7cdac972430.hot-update.js": "/chunks/user-create.a74b6607e7cdac972430.hot-update.js", - "/chunks/user-create.2f4fb0da79ad0e978ccb.hot-update.js": "/chunks/user-create.2f4fb0da79ad0e978ccb.hot-update.js", - "/chunks/user-create.5c5c4eca7bf7386f694d.hot-update.js": "/chunks/user-create.5c5c4eca7bf7386f694d.hot-update.js", - "/chunks/user-create.90b8d2a51502ba505aa0.hot-update.js": "/chunks/user-create.90b8d2a51502ba505aa0.hot-update.js", - "/chunks/user-create.375793ace33f5a7418dc.hot-update.js": "/chunks/user-create.375793ace33f5a7418dc.hot-update.js", - "/chunks/user-create.dc4df3471eeb2ed2b3d1.hot-update.js": "/chunks/user-create.dc4df3471eeb2ed2b3d1.hot-update.js", - "/chunks/user-create.0f84d6d095759bce0dbd.hot-update.js": "/chunks/user-create.0f84d6d095759bce0dbd.hot-update.js", - "/chunks/user-create.242c21dfba3203d52ef2.hot-update.js": "/chunks/user-create.242c21dfba3203d52ef2.hot-update.js", - "/chunks/user-create.266c0ca93a6735ef3a84.hot-update.js": "/chunks/user-create.266c0ca93a6735ef3a84.hot-update.js", - "/chunks/user-create.1acc9e0da68e66d210a4.hot-update.js": "/chunks/user-create.1acc9e0da68e66d210a4.hot-update.js", - "/chunks/user-create.dcb0117f4b7d769dc082.hot-update.js": "/chunks/user-create.dcb0117f4b7d769dc082.hot-update.js", - "/chunks/user-create.5dfbd0729d493c839a29.hot-update.js": "/chunks/user-create.5dfbd0729d493c839a29.hot-update.js", - "/chunks/user-create.73770f0976d9d5a25b8c.hot-update.js": "/chunks/user-create.73770f0976d9d5a25b8c.hot-update.js", - "/chunks/user-create.54ae66ab0f6535ab88fd.hot-update.js": "/chunks/user-create.54ae66ab0f6535ab88fd.hot-update.js", - "/chunks/user-create.71d6353646d0b450dc3a.hot-update.js": "/chunks/user-create.71d6353646d0b450dc3a.hot-update.js", - "/chunks/user-create.4eb624ae9661c486f5e9.hot-update.js": "/chunks/user-create.4eb624ae9661c486f5e9.hot-update.js", - "/chunks/user-create.f23c32bee25bc81f6689.hot-update.js": "/chunks/user-create.f23c32bee25bc81f6689.hot-update.js", - "/chunks/user-create.85fe12a3027d6207f6f2.hot-update.js": "/chunks/user-create.85fe12a3027d6207f6f2.hot-update.js", - "/chunks/user-create.c02151f6030597407506.hot-update.js": "/chunks/user-create.c02151f6030597407506.hot-update.js", - "/chunks/user-create.17b4bfca823d5896046d.hot-update.js": "/chunks/user-create.17b4bfca823d5896046d.hot-update.js", - "/chunks/user-create.adf62e112c213ee53ae5.hot-update.js": "/chunks/user-create.adf62e112c213ee53ae5.hot-update.js", - "/chunks/user-create.9f42e3864e1b8da68fba.hot-update.js": "/chunks/user-create.9f42e3864e1b8da68fba.hot-update.js", - "/chunks/user-create.10bb5e47f31788c3c76b.hot-update.js": "/chunks/user-create.10bb5e47f31788c3c76b.hot-update.js", - "/chunks/user-create.7d2b032edb567a50bcd8.hot-update.js": "/chunks/user-create.7d2b032edb567a50bcd8.hot-update.js", - "/chunks/user-create.8006779f958f7169e9d5.hot-update.js": "/chunks/user-create.8006779f958f7169e9d5.hot-update.js", - "/js/main.69efc639b7a35270363d.hot-update.js": "/js/main.69efc639b7a35270363d.hot-update.js", - "/chunks/user-create.69efc639b7a35270363d.hot-update.js": "/chunks/user-create.69efc639b7a35270363d.hot-update.js", - "/chunks/users.1643485e962ee8d6de38.hot-update.js": "/chunks/users.1643485e962ee8d6de38.hot-update.js", - "/chunks/users.c5edaed550eebf8241ec.hot-update.js": "/chunks/users.c5edaed550eebf8241ec.hot-update.js", - "/chunks/users.1d23b81f37ced25c5000.hot-update.js": "/chunks/users.1d23b81f37ced25c5000.hot-update.js", - "/chunks/users.95851214144197354979.hot-update.js": "/chunks/users.95851214144197354979.hot-update.js", - "/chunks/users.ebf3344fcab1a32d2b99.hot-update.js": "/chunks/users.ebf3344fcab1a32d2b99.hot-update.js", - "/chunks/user-create.c89e2097ceac3e5394d5.hot-update.js": "/chunks/user-create.c89e2097ceac3e5394d5.hot-update.js", - "/js/main.41c24977104696892944.hot-update.js": "/js/main.41c24977104696892944.hot-update.js", - "/chunks/user-create.41c24977104696892944.hot-update.js": "/chunks/user-create.41c24977104696892944.hot-update.js", - "/chunks/users.41c24977104696892944.hot-update.js": "/chunks/users.41c24977104696892944.hot-update.js", - "/chunks/users.94c5a3524848fcd48ce3.hot-update.js": "/chunks/users.94c5a3524848fcd48ce3.hot-update.js", - "/js/main.c37139a7ae727fbb4c02.hot-update.js": "/js/main.c37139a7ae727fbb4c02.hot-update.js", - "/js/main.75a7330f169a31271b4c.hot-update.js": "/js/main.75a7330f169a31271b4c.hot-update.js", - "/chunks/users.75a7330f169a31271b4c.hot-update.js": "/chunks/users.75a7330f169a31271b4c.hot-update.js", - "/chunks/dashboard~chunks/files~chunks/invoices~chunks/pages~chunks/plans~chunks/settings-payment-meth~0bfeabca.cec600408276af5260fe.hot-update.js": "/chunks/dashboard~chunks/files~chunks/invoices~chunks/pages~chunks/plans~chunks/settings-payment-meth~0bfeabca.cec600408276af5260fe.hot-update.js", - "/chunks/dashboard~chunks/files~chunks/invoices~chunks/pages~chunks/plans~chunks/settings-payment-meth~0bfeabca.dbdbf80723e41e072d01.hot-update.js": "/chunks/dashboard~chunks/files~chunks/invoices~chunks/pages~chunks/plans~chunks/settings-payment-meth~0bfeabca.dbdbf80723e41e072d01.hot-update.js", - "/chunks/users.2b4b9dbd972d7a9d7c83.hot-update.js": "/chunks/users.2b4b9dbd972d7a9d7c83.hot-update.js", - "/chunks/dashboard~chunks/files~chunks/invoices~chunks/pages~chunks/plans~chunks/settings-payment-meth~0bfeabca.d4f9806caf6c6d5f1344.hot-update.js": "/chunks/dashboard~chunks/files~chunks/invoices~chunks/pages~chunks/plans~chunks/settings-payment-meth~0bfeabca.d4f9806caf6c6d5f1344.hot-update.js", - "/js/main.55cf4e9bc02bec922581.hot-update.js": "/js/main.55cf4e9bc02bec922581.hot-update.js", - "/js/main.b52ecb4afdc47584e38f.hot-update.js": "/js/main.b52ecb4afdc47584e38f.hot-update.js", - "/chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chu~74bf0fcb.js": "/chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chu~74bf0fcb.js?id=6b6737a58e371fc4434b", - "/chunks/oasis/platba.js": "/chunks/oasis/platba.js?id=7805c58cc0a244525e88", - "/chunks/oasis/platba~chunks/upgrade-billing~chunks/upgrade-plan.js": "/chunks/oasis/platba~chunks/upgrade-billing~chunks/upgrade-plan.js?id=4781f8460c7f0f8b21a5", + "/chunks/users.js": "/chunks/users.js?id=12b2b13cacbe991481bb", "/vendors~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-i~0a9c5e33.js": "/vendors~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-i~0a9c5e33.js?id=b28978d3c8aae9b949a5", "/vendors~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-i~8394cf85.js": "/vendors~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-i~8394cf85.js?id=d25da0762af813ea588c", - "/chunks/oasis/platba.f2d7a060bf88fd2d9403.hot-update.js": "/chunks/oasis/platba.f2d7a060bf88fd2d9403.hot-update.js", - "/chunks/oasis/platba.79f86d9923a5b3d8f77b.hot-update.js": "/chunks/oasis/platba.79f86d9923a5b3d8f77b.hot-update.js", - "/chunks/oasis/platba.960030e55311860adad8.hot-update.js": "/chunks/oasis/platba.960030e55311860adad8.hot-update.js", - "/js/main.b089e299b2beda8c4435.hot-update.js": "/js/main.b089e299b2beda8c4435.hot-update.js", - "/chunks/oasis/platba.0975d1f12bf7fcd32825.hot-update.js": "/chunks/oasis/platba.0975d1f12bf7fcd32825.hot-update.js", - "/chunks/oasis/platba.b1513de9a1f782c9fcf9.hot-update.js": "/chunks/oasis/platba.b1513de9a1f782c9fcf9.hot-update.js", - "/chunks/oasis/platba.6101685137fe4c159b2f.hot-update.js": "/chunks/oasis/platba.6101685137fe4c159b2f.hot-update.js", - "/js/main.4e81e4ea624ef84cb166.hot-update.js": "/js/main.4e81e4ea624ef84cb166.hot-update.js", - "/chunks/oasis/platba.4e81e4ea624ef84cb166.hot-update.js": "/chunks/oasis/platba.4e81e4ea624ef84cb166.hot-update.js", - "/js/main.9d41d45200d1397f7d1f.hot-update.js": "/js/main.9d41d45200d1397f7d1f.hot-update.js", - "/chunks/oasis/platba.9d41d45200d1397f7d1f.hot-update.js": "/chunks/oasis/platba.9d41d45200d1397f7d1f.hot-update.js", - "/chunks/oasis/platba.7295a36fd456e216edb5.hot-update.js": "/chunks/oasis/platba.7295a36fd456e216edb5.hot-update.js", - "/chunks/oasis/platba.42cfd9642e72806e1d73.hot-update.js": "/chunks/oasis/platba.42cfd9642e72806e1d73.hot-update.js", - "/chunks/oasis/platba.eb85a1eef45f79ca4c3e.hot-update.js": "/chunks/oasis/platba.eb85a1eef45f79ca4c3e.hot-update.js", - "/chunks/admin-account.9b07cca19b41d1b68e00.hot-update.js": "/chunks/admin-account.9b07cca19b41d1b68e00.hot-update.js", - "/chunks/app-setup.9b07cca19b41d1b68e00.hot-update.js": "/chunks/app-setup.9b07cca19b41d1b68e00.hot-update.js", - "/chunks/billings-detail.9b07cca19b41d1b68e00.hot-update.js": "/chunks/billings-detail.9b07cca19b41d1b68e00.hot-update.js", - "/chunks/database.9b07cca19b41d1b68e00.hot-update.js": "/chunks/database.9b07cca19b41d1b68e00.hot-update.js", - "/chunks/environment-setup.9b07cca19b41d1b68e00.hot-update.js": "/chunks/environment-setup.9b07cca19b41d1b68e00.hot-update.js", - "/chunks/installation-disclaimer.9b07cca19b41d1b68e00.hot-update.js": "/chunks/installation-disclaimer.9b07cca19b41d1b68e00.hot-update.js", - "/chunks/purchase-code.9b07cca19b41d1b68e00.hot-update.js": "/chunks/purchase-code.9b07cca19b41d1b68e00.hot-update.js", - "/chunks/stripe-credentials.9b07cca19b41d1b68e00.hot-update.js": "/chunks/stripe-credentials.9b07cca19b41d1b68e00.hot-update.js", - "/chunks/subscription-plans.9b07cca19b41d1b68e00.hot-update.js": "/chunks/subscription-plans.9b07cca19b41d1b68e00.hot-update.js", - "/chunks/subscription-service.9b07cca19b41d1b68e00.hot-update.js": "/chunks/subscription-service.9b07cca19b41d1b68e00.hot-update.js", - "/chunks/oasis/platba.cba2f2943cb866639e8c.hot-update.js": "/chunks/oasis/platba.cba2f2943cb866639e8c.hot-update.js", - "/js/main.031a4600b295390c58e8.hot-update.js": "/js/main.031a4600b295390c58e8.hot-update.js", - "/chunks/admin-account.031a4600b295390c58e8.hot-update.js": "/chunks/admin-account.031a4600b295390c58e8.hot-update.js", - "/chunks/app-setup.031a4600b295390c58e8.hot-update.js": "/chunks/app-setup.031a4600b295390c58e8.hot-update.js", - "/chunks/billings-detail.031a4600b295390c58e8.hot-update.js": "/chunks/billings-detail.031a4600b295390c58e8.hot-update.js", - "/chunks/dashboard~chunks/files~chunks/invoices~chunks/pages~chunks/plans~chunks/settings-payment-meth~0bfeabca.031a4600b295390c58e8.hot-update.js": "/chunks/dashboard~chunks/files~chunks/invoices~chunks/pages~chunks/plans~chunks/settings-payment-meth~0bfeabca.031a4600b295390c58e8.hot-update.js", - "/chunks/database.031a4600b295390c58e8.hot-update.js": "/chunks/database.031a4600b295390c58e8.hot-update.js", - "/chunks/environment-setup.031a4600b295390c58e8.hot-update.js": "/chunks/environment-setup.031a4600b295390c58e8.hot-update.js", - "/chunks/installation-disclaimer.031a4600b295390c58e8.hot-update.js": "/chunks/installation-disclaimer.031a4600b295390c58e8.hot-update.js", - "/chunks/purchase-code.031a4600b295390c58e8.hot-update.js": "/chunks/purchase-code.031a4600b295390c58e8.hot-update.js", - "/chunks/stripe-credentials.031a4600b295390c58e8.hot-update.js": "/chunks/stripe-credentials.031a4600b295390c58e8.hot-update.js", - "/chunks/subscription-plans.031a4600b295390c58e8.hot-update.js": "/chunks/subscription-plans.031a4600b295390c58e8.hot-update.js", - "/chunks/subscription-service.031a4600b295390c58e8.hot-update.js": "/chunks/subscription-service.031a4600b295390c58e8.hot-update.js", - "/chunks/user-create.031a4600b295390c58e8.hot-update.js": "/chunks/user-create.031a4600b295390c58e8.hot-update.js", - "/chunks/users.031a4600b295390c58e8.hot-update.js": "/chunks/users.031a4600b295390c58e8.hot-update.js", - "/js/main.e09be2a3c6f157576cd1.hot-update.js": "/js/main.e09be2a3c6f157576cd1.hot-update.js", - "/chunks/dashboard~chunks/files~chunks/invoices~chunks/pages~chunks/plans~chunks/settings-payment-meth~0bfeabca.e09be2a3c6f157576cd1.hot-update.js": "/chunks/dashboard~chunks/files~chunks/invoices~chunks/pages~chunks/plans~chunks/settings-payment-meth~0bfeabca.e09be2a3c6f157576cd1.hot-update.js", - "/chunks/user-create.e09be2a3c6f157576cd1.hot-update.js": "/chunks/user-create.e09be2a3c6f157576cd1.hot-update.js", - "/chunks/users.e09be2a3c6f157576cd1.hot-update.js": "/chunks/users.e09be2a3c6f157576cd1.hot-update.js", - "/js/main.0f9a8ae65e8eef72679b.hot-update.js": "/js/main.0f9a8ae65e8eef72679b.hot-update.js", - "/chunks/dashboard~chunks/files~chunks/invoices~chunks/pages~chunks/plans~chunks/settings-payment-meth~0bfeabca.0f9a8ae65e8eef72679b.hot-update.js": "/chunks/dashboard~chunks/files~chunks/invoices~chunks/pages~chunks/plans~chunks/settings-payment-meth~0bfeabca.0f9a8ae65e8eef72679b.hot-update.js", - "/chunks/user-create.0f9a8ae65e8eef72679b.hot-update.js": "/chunks/user-create.0f9a8ae65e8eef72679b.hot-update.js", - "/chunks/users.0f9a8ae65e8eef72679b.hot-update.js": "/chunks/users.0f9a8ae65e8eef72679b.hot-update.js", - "/js/main.71290e1b9d55d97cdb77.hot-update.js": "/js/main.71290e1b9d55d97cdb77.hot-update.js", - "/js/main.7bea7c94a5a2ebfec4aa.hot-update.js": "/js/main.7bea7c94a5a2ebfec4aa.hot-update.js", - "/js/main.b35488f9ab66392c897e.hot-update.js": "/js/main.b35488f9ab66392c897e.hot-update.js", - "/chunks/user-create.b35488f9ab66392c897e.hot-update.js": "/chunks/user-create.b35488f9ab66392c897e.hot-update.js", - "/chunks/users.b35488f9ab66392c897e.hot-update.js": "/chunks/users.b35488f9ab66392c897e.hot-update.js", - "/js/main.7e1fd694df45763849ec.hot-update.js": "/js/main.7e1fd694df45763849ec.hot-update.js", - "/chunks/dashboard~chunks/files~chunks/invoices~chunks/pages~chunks/plans~chunks/settings-payment-meth~0bfeabca.7e1fd694df45763849ec.hot-update.js": "/chunks/dashboard~chunks/files~chunks/invoices~chunks/pages~chunks/plans~chunks/settings-payment-meth~0bfeabca.7e1fd694df45763849ec.hot-update.js", - "/chunks/user-create.7e1fd694df45763849ec.hot-update.js": "/chunks/user-create.7e1fd694df45763849ec.hot-update.js", - "/chunks/users.7e1fd694df45763849ec.hot-update.js": "/chunks/users.7e1fd694df45763849ec.hot-update.js", - "/chunks/oasis/platba.42fd0177e215d3516bfe.hot-update.js": "/chunks/oasis/platba.42fd0177e215d3516bfe.hot-update.js", - "/chunks/oasis/platba.2bfe3d5044285222d2a5.hot-update.js": "/chunks/oasis/platba.2bfe3d5044285222d2a5.hot-update.js", - "/chunks/oasis/platba.f0e5d3accb7dbdddb2a1.hot-update.js": "/chunks/oasis/platba.f0e5d3accb7dbdddb2a1.hot-update.js", - "/chunks/oasis/platba.53d1b1594090e41edee0.hot-update.js": "/chunks/oasis/platba.53d1b1594090e41edee0.hot-update.js", - "/chunks/oasis/platba.88046b64ea7a1ecadc41.hot-update.js": "/chunks/oasis/platba.88046b64ea7a1ecadc41.hot-update.js", - "/chunks/oasis/platba.8470878c9420955d827c.hot-update.js": "/chunks/oasis/platba.8470878c9420955d827c.hot-update.js", - "/chunks/oasis/platba.f770bc9c5f7ce1baf7bd.hot-update.js": "/chunks/oasis/platba.f770bc9c5f7ce1baf7bd.hot-update.js", - "/chunks/oasis/platba.c22211f85d4e9c4f0187.hot-update.js": "/chunks/oasis/platba.c22211f85d4e9c4f0187.hot-update.js", - "/chunks/oasis/platba.c6784090b07e1acea3a4.hot-update.js": "/chunks/oasis/platba.c6784090b07e1acea3a4.hot-update.js", - "/chunks/oasis/platba.6dca55ec338a4adf73d5.hot-update.js": "/chunks/oasis/platba.6dca55ec338a4adf73d5.hot-update.js", - "/chunks/oasis/platba.c179b9444a3c304bd743.hot-update.js": "/chunks/oasis/platba.c179b9444a3c304bd743.hot-update.js", - "/chunks/oasis/platba.e64577edb6db58c5ce89.hot-update.js": "/chunks/oasis/platba.e64577edb6db58c5ce89.hot-update.js", - "/chunks/oasis/platba.752087d6897e8437d5fd.hot-update.js": "/chunks/oasis/platba.752087d6897e8437d5fd.hot-update.js", - "/chunks/oasis/platba.4a0d0bb38b403c4f63dc.hot-update.js": "/chunks/oasis/platba.4a0d0bb38b403c4f63dc.hot-update.js", - "/chunks/oasis/platba.677433c80d5c448beadb.hot-update.js": "/chunks/oasis/platba.677433c80d5c448beadb.hot-update.js", - "/chunks/oasis/platba.2a47eb5d8bdf839e007c.hot-update.js": "/chunks/oasis/platba.2a47eb5d8bdf839e007c.hot-update.js", - "/chunks/oasis/platba.d722b95e88e73ea2eb8f.hot-update.js": "/chunks/oasis/platba.d722b95e88e73ea2eb8f.hot-update.js", - "/chunks/oasis/platba.c854da135da3e531f267.hot-update.js": "/chunks/oasis/platba.c854da135da3e531f267.hot-update.js", - "/chunks/oasis/platba.15eb2d0c40be7dab8890.hot-update.js": "/chunks/oasis/platba.15eb2d0c40be7dab8890.hot-update.js", - "/chunks/oasis/platba.fe7c9541b5daa645c34b.hot-update.js": "/chunks/oasis/platba.fe7c9541b5daa645c34b.hot-update.js", - "/chunks/oasis/platba.17abba54e59018b56c20.hot-update.js": "/chunks/oasis/platba.17abba54e59018b56c20.hot-update.js", - "/chunks/oasis/platba.3433a1392fa4859957a5.hot-update.js": "/chunks/oasis/platba.3433a1392fa4859957a5.hot-update.js", - "/chunks/oasis/platba.46173a77ba5029b94428.hot-update.js": "/chunks/oasis/platba.46173a77ba5029b94428.hot-update.js", - "/js/main.8665af5c4b5bb3b34562.hot-update.js": "/js/main.8665af5c4b5bb3b34562.hot-update.js", - "/chunks/files~chunks/oasis/platba~chunks/settings-subscription~chunks/shared-files~chunks/shared/file~9d1352fd.js": "/chunks/files~chunks/oasis/platba~chunks/settings-subscription~chunks/shared-files~chunks/shared/file~9d1352fd.js?id=4030b241faac6b31341f", - "/chunks/oasis/platba.8665af5c4b5bb3b34562.hot-update.js": "/chunks/oasis/platba.8665af5c4b5bb3b34562.hot-update.js", - "/chunks/oasis/platba.80793d2faf022b06bc1b.hot-update.js": "/chunks/oasis/platba.80793d2faf022b06bc1b.hot-update.js", - "/chunks/oasis/platba.7e7c5b2678cf3b582143.hot-update.js": "/chunks/oasis/platba.7e7c5b2678cf3b582143.hot-update.js", - "/chunks/oasis/platba.faec9574fd98fd673669.hot-update.js": "/chunks/oasis/platba.faec9574fd98fd673669.hot-update.js", - "/chunks/oasis/platba.38cb9664a00c8d666200.hot-update.js": "/chunks/oasis/platba.38cb9664a00c8d666200.hot-update.js", - "/js/main.936a7e143e3f61eb3914.hot-update.js": "/js/main.936a7e143e3f61eb3914.hot-update.js", - "/chunks/oasis/platba.1808d1c8a24374407483.hot-update.js": "/chunks/oasis/platba.1808d1c8a24374407483.hot-update.js", - "/chunks/oasis/platba.1a91b409bac6643cd1ea.hot-update.js": "/chunks/oasis/platba.1a91b409bac6643cd1ea.hot-update.js", - "/js/main.95d371bd6f737548111d.hot-update.js": "/js/main.95d371bd6f737548111d.hot-update.js", - "/chunks/oasis/platba.95d371bd6f737548111d.hot-update.js": "/chunks/oasis/platba.95d371bd6f737548111d.hot-update.js", - "/js/main.f95f311e9ef928cbdb24.hot-update.js": "/js/main.f95f311e9ef928cbdb24.hot-update.js", - "/chunks/oasis/platba.f95f311e9ef928cbdb24.hot-update.js": "/chunks/oasis/platba.f95f311e9ef928cbdb24.hot-update.js", - "/chunks/oasis/platba.f70ad75ee7d8391c7ee9.hot-update.js": "/chunks/oasis/platba.f70ad75ee7d8391c7ee9.hot-update.js", - "/chunks/oasis/platba.311873ae6c05a6ed334c.hot-update.js": "/chunks/oasis/platba.311873ae6c05a6ed334c.hot-update.js", - "/chunks/oasis/platba.ab3e0239345bccbd7ceb.hot-update.js": "/chunks/oasis/platba.ab3e0239345bccbd7ceb.hot-update.js", - "/chunks/oasis/platba.549be1f1e9c63457b0b3.hot-update.js": "/chunks/oasis/platba.549be1f1e9c63457b0b3.hot-update.js", - "/chunks/oasis/platba.3e92922e3734893c7f75.hot-update.js": "/chunks/oasis/platba.3e92922e3734893c7f75.hot-update.js", - "/chunks/oasis/platba.a313317565ce32b43ea2.hot-update.js": "/chunks/oasis/platba.a313317565ce32b43ea2.hot-update.js", - "/chunks/oasis/platba.533a4dfdf46a35484a36.hot-update.js": "/chunks/oasis/platba.533a4dfdf46a35484a36.hot-update.js", - "/chunks/oasis/platba.f009c76893caadff04e9.hot-update.js": "/chunks/oasis/platba.f009c76893caadff04e9.hot-update.js", - "/chunks/oasis/platba.a611d3444f94bfdce48a.hot-update.js": "/chunks/oasis/platba.a611d3444f94bfdce48a.hot-update.js", - "/chunks/oasis/platba.da13b9373a1e8b01b6be.hot-update.js": "/chunks/oasis/platba.da13b9373a1e8b01b6be.hot-update.js", - "/chunks/oasis/platba.94b702f11bbb84b2a26a.hot-update.js": "/chunks/oasis/platba.94b702f11bbb84b2a26a.hot-update.js", - "/chunks/oasis/platba.7f2261220d4558187716.hot-update.js": "/chunks/oasis/platba.7f2261220d4558187716.hot-update.js", - "/chunks/oasis/platba.0cc8322034321a3f07a5.hot-update.js": "/chunks/oasis/platba.0cc8322034321a3f07a5.hot-update.js", - "/chunks/oasis/platba.097292fe9503aae25f5c.hot-update.js": "/chunks/oasis/platba.097292fe9503aae25f5c.hot-update.js", - "/chunks/oasis/platba.e13e95a4c77c1e976d93.hot-update.js": "/chunks/oasis/platba.e13e95a4c77c1e976d93.hot-update.js", - "/chunks/oasis/platba.0b778201954aeee92d9e.hot-update.js": "/chunks/oasis/platba.0b778201954aeee92d9e.hot-update.js", - "/chunks/oasis/platba.f1ff98bc8e156ba0717a.hot-update.js": "/chunks/oasis/platba.f1ff98bc8e156ba0717a.hot-update.js", - "/chunks/oasis/platba.fce89888954988c4aa4a.hot-update.js": "/chunks/oasis/platba.fce89888954988c4aa4a.hot-update.js", - "/chunks/oasis/platba.1ce9cba436d1432e1e7b.hot-update.js": "/chunks/oasis/platba.1ce9cba436d1432e1e7b.hot-update.js", - "/chunks/oasis/platba.088494b6c1bcac641ea8.hot-update.js": "/chunks/oasis/platba.088494b6c1bcac641ea8.hot-update.js", - "/chunks/oasis/platba.3047a4259cf8eced1123.hot-update.js": "/chunks/oasis/platba.3047a4259cf8eced1123.hot-update.js", - "/chunks/oasis/platba.7bd73539c1fa196e533a.hot-update.js": "/chunks/oasis/platba.7bd73539c1fa196e533a.hot-update.js", - "/chunks/oasis/platba.83349d896d0f64bf6b61.hot-update.js": "/chunks/oasis/platba.83349d896d0f64bf6b61.hot-update.js", - "/chunks/oasis/platba.36d8bb78dffde4b370ac.hot-update.js": "/chunks/oasis/platba.36d8bb78dffde4b370ac.hot-update.js", - "/chunks/oasis/platba.e14b1782f40a456176f6.hot-update.js": "/chunks/oasis/platba.e14b1782f40a456176f6.hot-update.js", - "/chunks/oasis/platba.0079b4d40fea3603cb73.hot-update.js": "/chunks/oasis/platba.0079b4d40fea3603cb73.hot-update.js", - "/chunks/oasis/platba.f24075402b37513bd698.hot-update.js": "/chunks/oasis/platba.f24075402b37513bd698.hot-update.js", - "/chunks/oasis/platba.97687a998911e67890ea.hot-update.js": "/chunks/oasis/platba.97687a998911e67890ea.hot-update.js", - "/chunks/oasis/platba.3b905c02d19f06f61235.hot-update.js": "/chunks/oasis/platba.3b905c02d19f06f61235.hot-update.js", - "/chunks/oasis/platba.d010b9f954f6daafb11f.hot-update.js": "/chunks/oasis/platba.d010b9f954f6daafb11f.hot-update.js", - "/chunks/oasis/platba.6a9e275749c1e5c79937.hot-update.js": "/chunks/oasis/platba.6a9e275749c1e5c79937.hot-update.js", - "/chunks/oasis/platba.7b807076b0666c4cd619.hot-update.js": "/chunks/oasis/platba.7b807076b0666c4cd619.hot-update.js", - "/chunks/oasis/platba.56b15fbaf67d621e3e83.hot-update.js": "/chunks/oasis/platba.56b15fbaf67d621e3e83.hot-update.js", - "/chunks/oasis/platba.66260c70f44ceeabfa27.hot-update.js": "/chunks/oasis/platba.66260c70f44ceeabfa27.hot-update.js", - "/chunks/oasis/platba.387fbc7cc613892f7f4d.hot-update.js": "/chunks/oasis/platba.387fbc7cc613892f7f4d.hot-update.js", - "/chunks/oasis/platba.d7b9c7357f63d3a5b75d.hot-update.js": "/chunks/oasis/platba.d7b9c7357f63d3a5b75d.hot-update.js", - "/chunks/oasis/platba.a22fd03d833229ca8765.hot-update.js": "/chunks/oasis/platba.a22fd03d833229ca8765.hot-update.js", - "/chunks/oasis/platba.1586fec26eed41a695d2.hot-update.js": "/chunks/oasis/platba.1586fec26eed41a695d2.hot-update.js", - "/chunks/oasis/platba.9a79174527f191ff0b5e.hot-update.js": "/chunks/oasis/platba.9a79174527f191ff0b5e.hot-update.js", - "/chunks/oasis/platba.e5077bc37cb72c3edd7e.hot-update.js": "/chunks/oasis/platba.e5077bc37cb72c3edd7e.hot-update.js", - "/chunks/oasis/platba.986e6b3c9af7ed074912.hot-update.js": "/chunks/oasis/platba.986e6b3c9af7ed074912.hot-update.js", - "/chunks/oasis/platba.b1719d99dc48ed7f5077.hot-update.js": "/chunks/oasis/platba.b1719d99dc48ed7f5077.hot-update.js", - "/chunks/oasis/platba.6724e6452a635403e038.hot-update.js": "/chunks/oasis/platba.6724e6452a635403e038.hot-update.js", - "/js/main.bfcc51c8cbe19d02e689.hot-update.js": "/js/main.bfcc51c8cbe19d02e689.hot-update.js", - "/chunks/oasis/platba.bfcc51c8cbe19d02e689.hot-update.js": "/chunks/oasis/platba.bfcc51c8cbe19d02e689.hot-update.js", - "/chunks/oasis/platba.24a6a7a972761fae8ba1.hot-update.js": "/chunks/oasis/platba.24a6a7a972761fae8ba1.hot-update.js", - "/chunks/oasis/platba.a2302361e8c18757ed61.hot-update.js": "/chunks/oasis/platba.a2302361e8c18757ed61.hot-update.js", - "/chunks/oasis/platba.59c33cfbcba62481c77a.hot-update.js": "/chunks/oasis/platba.59c33cfbcba62481c77a.hot-update.js", - "/chunks/oasis/platba.2654656e07f9c3d6b517.hot-update.js": "/chunks/oasis/platba.2654656e07f9c3d6b517.hot-update.js", - "/chunks/oasis/platba.343235256283a5425feb.hot-update.js": "/chunks/oasis/platba.343235256283a5425feb.hot-update.js", - "/chunks/oasis/platba.d91711ab4e599d95ac40.hot-update.js": "/chunks/oasis/platba.d91711ab4e599d95ac40.hot-update.js", - "/chunks/oasis/platba.7c440bd5167b5f691bc1.hot-update.js": "/chunks/oasis/platba.7c440bd5167b5f691bc1.hot-update.js", - "/chunks/oasis/platba.f78f245efdfd2705115d.hot-update.js": "/chunks/oasis/platba.f78f245efdfd2705115d.hot-update.js", - "/chunks/oasis/platba.520ba6d75a64d6f10fdc.hot-update.js": "/chunks/oasis/platba.520ba6d75a64d6f10fdc.hot-update.js", - "/chunks/oasis/platba.06ace6b4690832e8d596.hot-update.js": "/chunks/oasis/platba.06ace6b4690832e8d596.hot-update.js", - "/chunks/oasis/platba.38a0815c3b0389ce5797.hot-update.js": "/chunks/oasis/platba.38a0815c3b0389ce5797.hot-update.js", - "/js/main.d67879825385082f0d36.hot-update.js": "/js/main.d67879825385082f0d36.hot-update.js", - "/chunks/oasis/platba.40f4fdbfe7c883c81eec.hot-update.js": "/chunks/oasis/platba.40f4fdbfe7c883c81eec.hot-update.js", - "/chunks/oasis/platba.9a1b581e7c8bf5a6e420.hot-update.js": "/chunks/oasis/platba.9a1b581e7c8bf5a6e420.hot-update.js", - "/chunks/oasis/platba.a303b57f74a3b5c0e553.hot-update.js": "/chunks/oasis/platba.a303b57f74a3b5c0e553.hot-update.js", - "/chunks/oasis/platba.73ec768e1fe32c114a28.hot-update.js": "/chunks/oasis/platba.73ec768e1fe32c114a28.hot-update.js", - "/chunks/oasis/platba.3bc4d9afa4d0dc248145.hot-update.js": "/chunks/oasis/platba.3bc4d9afa4d0dc248145.hot-update.js", - "/chunks/oasis/platba.7b31d89b8593042dbcbd.hot-update.js": "/chunks/oasis/platba.7b31d89b8593042dbcbd.hot-update.js", - "/chunks/oasis/platba.5cb5e899ea459f99df6d.hot-update.js": "/chunks/oasis/platba.5cb5e899ea459f99df6d.hot-update.js", - "/chunks/oasis/platba.52a9e7ecff39884a88b0.hot-update.js": "/chunks/oasis/platba.52a9e7ecff39884a88b0.hot-update.js", - "/chunks/oasis/platba.585762ed0d7dc06714fd.hot-update.js": "/chunks/oasis/platba.585762ed0d7dc06714fd.hot-update.js", - "/chunks/sign-up.f07bfc6e1ac48990d173.hot-update.js": "/chunks/sign-up.f07bfc6e1ac48990d173.hot-update.js", - "/chunks/oasis/platba.7d9316390f22ac19e2d0.hot-update.js": "/chunks/oasis/platba.7d9316390f22ac19e2d0.hot-update.js", - "/chunks/oasis/platba.c61378e3b0b6389cb731.hot-update.js": "/chunks/oasis/platba.c61378e3b0b6389cb731.hot-update.js", - "/chunks/oasis/platba.54736d5bf911a2179219.hot-update.js": "/chunks/oasis/platba.54736d5bf911a2179219.hot-update.js", - "/chunks/oasis/platba.3012a18c6b196cc483bc.hot-update.js": "/chunks/oasis/platba.3012a18c6b196cc483bc.hot-update.js" + "/vendors~chunks/files~chunks/platform~chunks/shared~chunks/shared-files~chunks/shared/file-browser~ch~52c14f2e.js": "/vendors~chunks/files~chunks/platform~chunks/shared~chunks/shared-files~chunks/shared/file-browser~ch~52c14f2e.js?id=66afa0e341251a68c3d3", + "/js/main.3b480391731f365a3f52.hot-update.js": "/js/main.3b480391731f365a3f52.hot-update.js", + "/chunks/sign-up.3b480391731f365a3f52.hot-update.js": "/chunks/sign-up.3b480391731f365a3f52.hot-update.js", + "/js/main.b99919a59e160ee65c8a.hot-update.js": "/js/main.b99919a59e160ee65c8a.hot-update.js", + "/js/main.45d1c61bb2e9e8cf0302.hot-update.js": "/js/main.45d1c61bb2e9e8cf0302.hot-update.js", + "/chunks/oasis/platba~chunks/upgrade-billing~chunks/upgrade-plan.21f7553d47cd910da71f.hot-update.js": "/chunks/oasis/platba~chunks/upgrade-billing~chunks/upgrade-plan.21f7553d47cd910da71f.hot-update.js", + "/chunks/oasis/platba~chunks/upgrade-billing~chunks/upgrade-plan.8fe37df7d20aae5efa18.hot-update.js": "/chunks/oasis/platba~chunks/upgrade-billing~chunks/upgrade-plan.8fe37df7d20aae5efa18.hot-update.js", + "/js/main.3965bf7a3c03b257c027.hot-update.js": "/js/main.3965bf7a3c03b257c027.hot-update.js", + "/chunks/upgrade-billing.3965bf7a3c03b257c027.hot-update.js": "/chunks/upgrade-billing.3965bf7a3c03b257c027.hot-update.js", + "/chunks/upgrade-plan.3965bf7a3c03b257c027.hot-update.js": "/chunks/upgrade-plan.3965bf7a3c03b257c027.hot-update.js", + "/chunks/upgrade-plan.15d252c8c555b127c42b.hot-update.js": "/chunks/upgrade-plan.15d252c8c555b127c42b.hot-update.js", + "/chunks/oasis/platba~chunks/upgrade-billing~chunks/upgrade-plan.3a539ad9e2ef806281f8.hot-update.js": "/chunks/oasis/platba~chunks/upgrade-billing~chunks/upgrade-plan.3a539ad9e2ef806281f8.hot-update.js", + "/chunks/upgrade-plan.9a9ce5e9b7e36469f74e.hot-update.js": "/chunks/upgrade-plan.9a9ce5e9b7e36469f74e.hot-update.js", + "/chunks/upgrade-plan.ede8c9e527137d31a622.hot-update.js": "/chunks/upgrade-plan.ede8c9e527137d31a622.hot-update.js", + "/chunks/sign-up.f3d31da706b7dcb3a4ba.hot-update.js": "/chunks/sign-up.f3d31da706b7dcb3a4ba.hot-update.js", + "/chunks/sign-up.f745f46af4eead0393c7.hot-update.js": "/chunks/sign-up.f745f46af4eead0393c7.hot-update.js", + "/chunks/upgrade-billing.401f6b87c092047810c0.hot-update.js": "/chunks/upgrade-billing.401f6b87c092047810c0.hot-update.js", + "/js/main.c80c8fc3f6218d5e6816.hot-update.js": "/js/main.c80c8fc3f6218d5e6816.hot-update.js", + "/js/main.eb0461bd5943997e26af.hot-update.js": "/js/main.eb0461bd5943997e26af.hot-update.js", + "/js/main.758ad421dd696a61c775.hot-update.js": "/js/main.758ad421dd696a61c775.hot-update.js", + "/js/main.ab71c889f8d1e54b5b98.hot-update.js": "/js/main.ab71c889f8d1e54b5b98.hot-update.js", + "/js/main.229d883586f78d0e6d3c.hot-update.js": "/js/main.229d883586f78d0e6d3c.hot-update.js", + "/js/main.a61c752fd4acec546d0c.hot-update.js": "/js/main.a61c752fd4acec546d0c.hot-update.js", + "/js/main.bab802281f4e57253350.hot-update.js": "/js/main.bab802281f4e57253350.hot-update.js", + "/js/main.d0d5a027ce7a2506cd84.hot-update.js": "/js/main.d0d5a027ce7a2506cd84.hot-update.js", + "/chunks/upgrade-plan.c1f75fabde65df187895.hot-update.js": "/chunks/upgrade-plan.c1f75fabde65df187895.hot-update.js", + "/chunks/upgrade-billing.1f9bf9b4bc3242ba97d4.hot-update.js": "/chunks/upgrade-billing.1f9bf9b4bc3242ba97d4.hot-update.js", + "/js/main.c021f4f05b81201d60ea.hot-update.js": "/js/main.c021f4f05b81201d60ea.hot-update.js", + "/chunks/upgrade-billing.c021f4f05b81201d60ea.hot-update.js": "/chunks/upgrade-billing.c021f4f05b81201d60ea.hot-update.js", + "/chunks/upgrade-plan.c021f4f05b81201d60ea.hot-update.js": "/chunks/upgrade-plan.c021f4f05b81201d60ea.hot-update.js", + "/chunks/upgrade-billing.5b3d4d331b634d87c44d.hot-update.js": "/chunks/upgrade-billing.5b3d4d331b634d87c44d.hot-update.js", + "/chunks/upgrade-billing.5547ab6008a5996a98b6.hot-update.js": "/chunks/upgrade-billing.5547ab6008a5996a98b6.hot-update.js", + "/chunks/upgrade-billing.b26f4786a324bbd9cbd4.hot-update.js": "/chunks/upgrade-billing.b26f4786a324bbd9cbd4.hot-update.js", + "/chunks/upgrade-billing.ad94563aa4b2181888c5.hot-update.js": "/chunks/upgrade-billing.ad94563aa4b2181888c5.hot-update.js", + "/chunks/sign-up.e8a4dab23ad7f21529fa.hot-update.js": "/chunks/sign-up.e8a4dab23ad7f21529fa.hot-update.js", + "/chunks/sign-in.f1bd5c8d04bcb5c18126.hot-update.js": "/chunks/sign-in.f1bd5c8d04bcb5c18126.hot-update.js", + "/js/main.ffc459445ac0b65eb2e3.hot-update.js": "/js/main.ffc459445ac0b65eb2e3.hot-update.js", + "/chunks/sign-up.ffc459445ac0b65eb2e3.hot-update.js": "/chunks/sign-up.ffc459445ac0b65eb2e3.hot-update.js", + "/js/main.f2c6c4eca35dbea2b7e9.hot-update.js": "/js/main.f2c6c4eca35dbea2b7e9.hot-update.js", + "/chunks/user-create.6515bf69d96cf308f3bf.hot-update.js": "/chunks/user-create.6515bf69d96cf308f3bf.hot-update.js", + "/js/main.f067e231445340555f56.hot-update.js": "/js/main.f067e231445340555f56.hot-update.js", + "/chunks/user-create.f067e231445340555f56.hot-update.js": "/chunks/user-create.f067e231445340555f56.hot-update.js", + "/js/main.640c17e6e068fed6dedf.hot-update.js": "/js/main.640c17e6e068fed6dedf.hot-update.js", + "/js/main.ad221a56a771ab3db438.hot-update.js": "/js/main.ad221a56a771ab3db438.hot-update.js", + "/js/main.59227361266169b6d123.hot-update.js": "/js/main.59227361266169b6d123.hot-update.js" } diff --git a/resources/js/Oasis/Admin/UserCreate.vue b/resources/js/Oasis/Admin/UserCreate.vue new file mode 100644 index 00000000..267f022e --- /dev/null +++ b/resources/js/Oasis/Admin/UserCreate.vue @@ -0,0 +1,232 @@ + + + + + diff --git a/resources/js/Oasis/Admin/CreateSubscriptionRequest.vue b/resources/js/Oasis/Admin/UserCreateOrder.vue similarity index 99% rename from resources/js/Oasis/Admin/CreateSubscriptionRequest.vue rename to resources/js/Oasis/Admin/UserCreateOrder.vue index 53f3398e..56daf6ea 100644 --- a/resources/js/Oasis/Admin/CreateSubscriptionRequest.vue +++ b/resources/js/Oasis/Admin/UserCreateOrder.vue @@ -212,7 +212,7 @@ this.isLoading = true axios - .post('/api/oasis/admin/users/create', this.user) + .post('/api/oasis/admin/users/create-order', this.user) .then(response => { // Show toaster diff --git a/resources/js/Oasis/Auth/SignUp.vue b/resources/js/Oasis/Auth/SignUp.vue new file mode 100644 index 00000000..15bbefda --- /dev/null +++ b/resources/js/Oasis/Auth/SignUp.vue @@ -0,0 +1,198 @@ + + + + + diff --git a/resources/js/Oasis/Onboarding/PayForPlan.vue b/resources/js/Oasis/Onboarding/PayForPlan.vue new file mode 100644 index 00000000..1d03a5a8 --- /dev/null +++ b/resources/js/Oasis/Onboarding/PayForPlan.vue @@ -0,0 +1,707 @@ + + + + + diff --git a/resources/js/Oasis/Onboarding/SelectPlan.vue b/resources/js/Oasis/Onboarding/SelectPlan.vue new file mode 100644 index 00000000..9fce1927 --- /dev/null +++ b/resources/js/Oasis/Onboarding/SelectPlan.vue @@ -0,0 +1,116 @@ + + + + + diff --git a/resources/js/components/Others/PlanPricingTables.vue b/resources/js/components/Others/PlanPricingTables.vue index f2ca96f9..20b29612 100644 --- a/resources/js/components/Others/PlanPricingTables.vue +++ b/resources/js/components/Others/PlanPricingTables.vue @@ -39,6 +39,9 @@ HardDriveIcon, ButtonBase, }, + props: [ + 'customRoute' + ], data() { return { plans: undefined, @@ -50,7 +53,10 @@ methods: { selectPlan(plan) { this.$emit('selected-plan', plan) - this.$router.push({name: 'UpgradeBilling'}) + + let route = this.customRoute ? this.customRoute : 'UpgradeBilling' + + this.$router.push({name: route}) } }, created() { diff --git a/resources/js/router.js b/resources/js/router.js index 38bf2892..430f62bb 100644 --- a/resources/js/router.js +++ b/resources/js/router.js @@ -9,6 +9,35 @@ import UserProfileMobileMenu from './views/Mobile/UserProfileMobileMenu' Vue.use(Router) const routesOasis = [ + { + name: 'SignUp', + path: '/sign-up', + component: () => + import(/* webpackChunkName: "chunks/sign-up" */ './Oasis/Auth/SignUp'), + meta: { + requiresAuth: false + }, + }, + { + name: 'SetUpPlan', + path: '/nastavte-plan', + component: () => + import(/* webpackChunkName: "chunks/upgrade-plan" */ './Oasis/Onboarding/SelectPlan'), + meta: { + requiresAuth: true, + title: i18n.t('routes_title.upgrade_plan') + }, + }, + { + name: 'FinishPayment', + path: '/dokoncete-objednavku', + component: () => + import(/* webpackChunkName: "chunks/upgrade-billing" */ './Oasis/Onboarding/PayForPlan'), + meta: { + requiresAuth: true, + title: i18n.t('routes_title.upgrade_billing') + }, + }, { name: 'SubscriptionRequestPayment', path: '/platba/:id', @@ -53,7 +82,7 @@ const routesOasis = [ name: 'CreateSubscriptionRequest', path: '/admin/user/order', component: () => - import(/* webpackChunkName: "chunks/user-create" */ './Oasis/Admin/CreateSubscriptionRequest'), + import(/* webpackChunkName: "chunks/user-create" */ './Oasis/Admin/UserCreateOrder'), meta: { requiresAuth: true, title: i18n.t('routes_title.user_create') diff --git a/resources/js/store/modules/userAuth.js b/resources/js/store/modules/userAuth.js index 0b2e10ca..8b4bd750 100644 --- a/resources/js/store/modules/userAuth.js +++ b/resources/js/store/modules/userAuth.js @@ -16,9 +16,9 @@ const actions = { .then((response) => { resolve(response) - // Redirect user if is logged - if (router.currentRoute.name === 'SignIn') - router.push({name: 'Files'}) + // Oasis redirection to setup plan process after sign in + if (response.data.data.attributes.role === 'user' && ! response.data.data.relationships.settings.data.attributes.payment_activation) + router.push({name: 'SetUpPlan'}) commit('RETRIEVE_USER', response.data) @@ -29,7 +29,6 @@ const actions = { if ([401, 403].includes(error.response.status)) { commit('SET_AUTHORIZED', false) - //router.push({name: 'SignIn'}) } } ) diff --git a/resources/js/views/Auth/SignIn.vue b/resources/js/views/Auth/SignIn.vue index 8e3bc4f3..fc3d253b 100644 --- a/resources/js/views/Auth/SignIn.vue +++ b/resources/js/views/Auth/SignIn.vue @@ -193,17 +193,6 @@ }); } - if (error.response.status == 401) { - - if (error.response.data.error === 'invalid_client') { - events.$emit('alert:open', { - emoji: '🤔', - title: this.$t('popup_passport_error.title'), - message: this.$t('popup_passport_error.message') - }) - } - } - // End loading this.isLoading = false }) @@ -214,8 +203,8 @@ this.$store.commit('PROCESSING_POPUP', undefined) //if (this.config.isDemo) { - this.loginEmail = 'howdy@hi5ve.digital' - this.loginPassword = 'vuefilemanager' + this.loginEmail = 'howdy@hi5ve.digital' + this.loginPassword = 'vuefilemanager' //} } } diff --git a/routes/oasis.php b/routes/oasis.php index 2f78bcba..ef92c8f1 100644 --- a/routes/oasis.php +++ b/routes/oasis.php @@ -8,12 +8,13 @@ Route::group(['middleware' => 'api', 'prefix' => '/api/oasis'], function () { // Admin Route::group(['middleware' => 'auth:sanctum', 'prefix' => 'admin'], function () { Route::get('/company-details', [AdminController::class, 'get_company_details']); - Route::post('/users/create', [AdminController::class, 'register_new_client']); + Route::post('/users/create-order', [AdminController::class, 'create_order']); + Route::post('/users/create-user', [AdminController::class, 'create_user']); }); // Subscription Route::group(['prefix' => 'subscribe'], function () { - Route::post('/{order}', [SubscriptionController::class, 'subscribe']); + Route::post('/{order?}', [SubscriptionController::class, 'subscribe']); Route::get('/{order}', [SubscriptionController::class, 'get_subscription_request']); Route::get('/{order}/setup-intent', [SubscriptionController::class, 'get_setup_intent']); }); diff --git a/tests/Feature/Oasis/OasisAdminTest.php b/tests/Feature/Oasis/OasisAdminTest.php index cf359c58..2e70bc48 100644 --- a/tests/Feature/Oasis/OasisAdminTest.php +++ b/tests/Feature/Oasis/OasisAdminTest.php @@ -5,9 +5,11 @@ namespace Tests\Feature\Oasis; use App\Models\User; use App\Notifications\Oasis\PaymentRequiredNotification; use Illuminate\Foundation\Testing\DatabaseMigrations; +use Illuminate\Http\UploadedFile; use Illuminate\Support\Facades\Http; use Laravel\Sanctum\Sanctum; use Notification; +use Storage; use Tests\TestCase; class OasisAdminTest extends TestCase @@ -64,7 +66,7 @@ class OasisAdminTest extends TestCase /** * @test */ - public function it_register_new_client_from_admin_panel() + public function it_create_client_order() { Notification::fake(); @@ -73,7 +75,7 @@ class OasisAdminTest extends TestCase Sanctum::actingAs($admin); - $this->postJson('/api/oasis/admin/users/create', [ + $this->postJson('/api/oasis/admin/users/create-order', [ 'ico' => '08995281', 'name' => 'GDPR Cloud Solution, s.r.o.', 'email' => 'john@doe.com', @@ -107,4 +109,44 @@ class OasisAdminTest extends TestCase Notification::assertSentTo($newbie, PaymentRequiredNotification::class); } + + /** + * @test + */ + public function it_create_new_user_with_avatar() + { + Storage::fake('local'); + + $admin = User::factory(User::class) + ->create(['role' => 'admin']); + + Sanctum::actingAs($admin); + + $avatar = UploadedFile::fake() + ->image('fake-image.jpg'); + + $this->postJson("/api/oasis/admin/users/create-user", [ + 'name' => 'John Doe', + 'role' => 'user', + 'email' => 'john@doe.com', + 'password' => 'VerySecretPassword', + 'storage_capacity' => 15, + 'password_confirmation' => 'VerySecretPassword', + 'avatar' => $avatar, + ])->assertStatus(201); + + $this->assertDatabaseHas('users', [ + 'email' => 'john@doe.com' + ]); + + $this->assertDatabaseHas('user_settings', [ + 'name' => 'John Doe', + 'payment_activation' => 1, + ]); + + Storage::disk('local') + ->assertExists( + User::whereEmail('john@doe.com')->first()->settings->getRawOriginal('avatar') + ); + } } diff --git a/tests/Feature/Oasis/OasisSubscriptionTest.php b/tests/Feature/Oasis/OasisSubscriptionTest.php index 99207908..29100a1e 100644 --- a/tests/Feature/Oasis/OasisSubscriptionTest.php +++ b/tests/Feature/Oasis/OasisSubscriptionTest.php @@ -9,6 +9,7 @@ use App\Services\Oasis\OasisService; use Carbon\Carbon; use Cartalyst\Stripe\Stripe; use Illuminate\Foundation\Testing\DatabaseMigrations; +use Laravel\Sanctum\Sanctum; use Notification; use Tests\TestCase; @@ -87,7 +88,7 @@ class OasisSubscriptionTest extends TestCase /** * @test */ - public function it_subscribe_user_and_pay_for_it() + public function it_subscribe_user_from_subscription_request() { $user = User::factory(User::class) ->create(['role' => 'user']); @@ -145,6 +146,67 @@ class OasisSubscriptionTest extends TestCase ]); } + /** + * @test + */ + public function it_subscribe_user_after_signup() + { + $user = User::factory(User::class) + ->create(['role' => 'user']); + + Sanctum::actingAs($user); + + // Register payment method + $stripe = Stripe::make(config('cashier.secret'), '2020-03-02'); + + // Create test payment method + $paymentMethod = $stripe->paymentMethods()->create([ + 'type' => 'card', + 'card' => [ + 'number' => '4242424242424242', + 'exp_month' => 11, + 'exp_year' => 2022, + 'cvc' => '123' + ], + ]); + + // Create stripe customer + $user->createOrGetStripeCustomer(); + + $this->postJson("/api/oasis/subscribe", [ + 'plan' => $this->plan, + 'billing' => [ + 'billing_address' => '2794 Alfreda Mount Suite 467 East Crystalberg', + 'billing_city' => 'Christianfort', + 'billing_country' => 'SK', + 'billing_name' => 'Heidi Romaguera PhD', + 'billing_phone_number' => '+421', + 'billing_postal_code' => '59445', + 'billing_state' => 'SK', + ], + 'payment' => [ + 'type' => 'stripe', + 'meta' => [ + 'pm' => $paymentMethod['id'] + ], + ], + ])->assertStatus(204); + + $this->assertDatabaseHas('subscriptions', [ + 'stripe_status' => 'active' + ]); + + $this->assertDatabaseHas('user_settings', [ + 'storage_capacity' => 50, + 'payment_activation' => 1, + ]); + + $this->assertDatabaseMissing('users', [ + 'stripe_id' => null, + 'card_brand' => null, + ]); + } + /** * @test */