diff --git a/app/Http/Controllers/Supply.php b/app/Http/Controllers/Supply.php index 6c1eb60..50b63aa 100644 --- a/app/Http/Controllers/Supply.php +++ b/app/Http/Controllers/Supply.php @@ -7,6 +7,7 @@ use Illuminate\Support\Facades\Http; use Illuminate\Support\Facades\Log; use App\Models\Supplier; +use App\Models\Order; class Supply extends Controller { @@ -60,4 +61,67 @@ class Supply extends Controller } } + 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; + } + + } diff --git a/app/Models/Service.php b/app/Models/Service.php index 920ee56..cffe180 100644 --- a/app/Models/Service.php +++ b/app/Models/Service.php @@ -23,4 +23,8 @@ class Service extends Model return $this->hasMany(Supplier::class); } + public function primary() { + return $this->belongsTo(Supplier::class, 'primary_supplier', 'id'); + } + } diff --git a/database/migrations/2021_05_19_185302_create_orders_table.php b/database/migrations/2021_05_19_185302_create_orders_table.php index 41f9740..587c99e 100644 --- a/database/migrations/2021_05_19_185302_create_orders_table.php +++ b/database/migrations/2021_05_19_185302_create_orders_table.php @@ -21,6 +21,9 @@ class CreateOrdersTable extends Migration $table->bigInteger('quantity'); $table->integer('attempts')->default(0); $table->string('note')->default(''); + $table->string('fulfilled_by')->nullable(); + $table->string('fulfiller_status')->nullable(); + $table->integer('fulfiller_id')->nullable(); $table->string('message')->nullable(); $table->bigInteger('remaining')->default(0); $table->enum('status', ['processing', 'pending', 'canceled',