<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Support\Facades\Http; use Illuminate\Support\Facades\Log; use App\Models\Supplier; use App\Models\Order; class Supply extends Controller { // Accepts a site name, service id, and integer/array of supplier rows to // create public static function fetch($site) { return Http::post(config("services.$site.link"), ['key' => config("services.$site.key"), 'action' => 'services']); } public static function smmkings($service_id, $id) { $services = Http::post(config("services.smmkings.link"), ['key' => config("services.smmkings.key"), 'action' => 'services'])->json(); foreach ($services as $service) { if ($service['service'] == $id){ $s = new Supplier; $s->service_id = $service_id; $s->supplier = 'smmkings'; $s->supplier_id = (int) $service['service']; $s->supplier_name = $service['name']; $s->min = (int) $service['min']; $s->max = (int) $service['max']; $s->cost = $service['rate'] * 100; $s->save(); return $s; } } } public static function smmworld($service_id, $id) { $services = Http::post(config("services.smmworld.link"), ['key' => config("services.smmworld.key"), 'action' => 'services']); $services = $services['services']; foreach ($services as $service) { if ($service['id'] == $id){ $s = new Supplier; $s->service_id = $service_id; $s->supplier = 'smmworld'; $s->supplier_id = $service['id']; $s->supplier_name = $service['name']; $s->min = $service['min']; $s->max = $service['max']; $s->cost = $service['price_per_k'] * 100; $s->save(); return $s; } } } public static function fulfill($order) { if (gettype($order) == 'integer') { $order = Order::find($order); } return Supply::orderPrimary($order); } public static function fulfillAny($order) { if (gettype($order) == 'integer') { $order = Order::find($order); } if (Supply::orderPrimary($order)) { }; } public static function orderPrimary($order) { if (gettype($order) == 'integer') { $order = Order::find($order); } $primary = $order->service->primary; switch ($primary->supplier) { case 'smmkings': return Supply::orderSmmkings($order, $primary); break; case 'smmworld': return Supply::orderSmmworld($order, $primary); break; } } public static function orderSmmkings($order, $supplier) { if ($supplier->supplier != 'smmkings') { return false; } $response = Http::post(config("services.smmkings.link"), ['key' => config("services.smmkings.key"), 'action' => 'add', 'service' => $supplier->supplier_id, 'link' => $order->url, 'quantity' => $order->quantity])->json(); return $response; } public static function orderSmmworld($order, $supplier) { if ($supplier->supplier != 'smmworld') { return false; } $response = Http::post(config("services.smmworld.link"), ['key' => config("services.smmworld.key"), 'action' => 'add', 'service' => $supplier->supplier_id, 'link' => $order->url, 'quantity' => $order->quantity])->json(); return $response; } }