![]() Server : Apache/2.4.62 (Unix) OpenSSL/1.0.2k-fips System : Linux server1.richineiserver.com 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64 User : fdshops ( 1003) PHP Version : 8.2.21 Disable Function : NONE Directory : /home/fdshops/public_html/Modules/Connector/Http/Controllers/Api/ |
<?php namespace Modules\Connector\Http\Controllers\Api; use App\Utils\ModuleUtil; use Illuminate\Http\Response; use Illuminate\Support\Arr; use Illuminate\Support\Facades\Auth; use Module; use Modules\Connector\Transformers\CommonResource; /** * @group Superadmin * @authenticated * * APIs for superadmin module */ class SuperadminController extends ApiController { /** * All Utils instance. */ protected $moduleUtil; public function __construct(ModuleUtil $moduleUtil) { $this->moduleUtil = $moduleUtil; } /** * If SaaS installed get active subscription details, else return the enabled modules details in package_details * * @response { "data": { "id": 1, "business_id": 1, "package_id": 3, "start_date": "2020-09-05 00:00:00", "trial_end_date": "2020-09-15", "end_date": "2020-10-05 00:00:00", "package_price": "599.9900", "package_details": { "location_count": 0, "user_count": 0, "product_count": 0, "invoice_count": 0, "name": "Unlimited", "woocommerce_module": 1, "essentials_module": 1 }, "created_id": 1, "paid_via": "stripe", "payment_transaction_id": "ch_1CuLdQAhokBpT93LVZNg2At6", "status": "approved", "deleted_at": null, "created_at": "2018-08-01 07:49:09", "updated_at": "2018-08-01 07:49:09", "locations_created": 1, "users_created": 6, "products_created": 2, "invoices_created": 1 } } */ public function getActiveSubscription() { $user = Auth::user(); $business_id = $user->business_id; $output = []; if ($this->moduleUtil->isSuperadminInstalled()) { $subscription = \Modules\Superadmin\Entities\Subscription::active_subscription($business_id); if (! empty($subscription)) { $resource_count = $this->moduleUtil->getResourceCount($business_id, $subscription); $output = array_merge($subscription->toArray(), $resource_count); } } else { //If not installed return the installed modules details. $modules = Arr::pluck(Module::toCollection()->toArray(), 'name'); $output = [ 'package_details' => [], ]; foreach ($modules as $module) { if ($this->moduleUtil->isModuleInstalled($module)) { $output['package_details'][strtolower($module).'_module'] = 1; } } } return new CommonResource($output); } /** * Get Superadmin Package List * * @response { "data": [ { "id": 1, "name": "Starter - Free", "description": "Give it a test drive...", "location_count": 0, "user_count": 0, "product_count": 0, "bookings": 0, "kitchen": 0, "order_screen": 0, "tables": 0, "invoice_count": 0, "interval": "months", "interval_count": 1, "trial_days": 10, "price": "0.0000", "custom_permissions": { "assetmanagement_module": "1", "connector_module": "1", "crm_module": "1", "essentials_module": "1", "manufacturing_module": "1", "productcatalogue_module": "1", "project_module": "1", "repair_module": "1", "woocommerce_module": "1" }, "created_by": 1, "sort_order": 0, "is_active": 1, "is_private": 0, "is_one_time": 0, "enable_custom_link": 0, "custom_link": "", "custom_link_text": "", "deleted_at": null, "created_at": "2020-10-09 16:38:02", "updated_at": "2020-11-11 12:19:17" }, { "id": 2, "name": "Regular", "description": "For Small Shops", "location_count": 0, "user_count": 0, "product_count": 0, "bookings": 0, "kitchen": 0, "order_screen": 0, "tables": 0, "invoice_count": 0, "interval": "months", "interval_count": 1, "trial_days": 10, "price": "199.9900", "custom_permissions": { "repair_module": "1" }, "created_by": 1, "sort_order": 1, "is_active": 1, "is_private": 0, "is_one_time": 0, "enable_custom_link": 0, "custom_link": null, "custom_link_text": null, "deleted_at": null, "created_at": "2020-10-09 16:38:02", "updated_at": "2020-10-09 16:38:02" }, { "id": 3, "name": "Unlimited", "description": "For Large Business", "location_count": 0, "user_count": 0, "product_count": 0, "bookings": 0, "kitchen": 0, "order_screen": 0, "tables": 0, "invoice_count": 0, "interval": "months", "interval_count": 1, "trial_days": 10, "price": "599.9900", "custom_permissions": { "assetmanagement_module": "1", "connector_module": "1", "crm_module": "1", "essentials_module": "1", "manufacturing_module": "1", "productcatalogue_module": "1", "project_module": "1", "repair_module": "1", "woocommerce_module": "1" }, "created_by": 1, "sort_order": 1, "is_active": 1, "is_private": 0, "is_one_time": 0, "enable_custom_link": 0, "custom_link": "", "custom_link_text": "", "deleted_at": null, "created_at": "2020-10-09 16:38:02", "updated_at": "2020-11-02 12:09:19" } ] } */ public function getPackages() { if (! $this->moduleUtil->isSuperadminInstalled()) { abort(403, 'Unauthorized action.'); } $packages = \Modules\Superadmin\Entities\Package::orderby('sort_order', 'asc')->get(); return new CommonResource($packages); } }