Edit File: AuthServices.php
<?php namespace App\Services; use App\Models\DelegateJoinrequest; use App\Models\Store; use App\Models\User; use App\Traits\ApiTrait; use App\Traits\DeviceTrait; use App\Traits\GeneralTrait; use App\Traits\Uploadable; use Illuminate\Support\Str; use App\Models\StoreTiming; use App\Models\UserCategory; class AuthServices { use ApiTrait, GeneralTrait, DeviceTrait, Uploadable; public function storeRegister(array $data) { $request = $data['user']; $request['remember_token'] = Str::random(10); $request['status'] = 'pending'; $request['type'] = 'store'; $request['approve'] = 'pending'; $request['completed_info'] = 'false'; $store_data = $data['store']; $store_data['icon'] = $this->uploadFile($store_data['icon'], 'stores', true, 250, null); $user = User::updateOrCreate([ 'phone' => $request['phone'] ] ,$request); // if ($user = User::where('phone', $request['phone'])->first()) { // $user->update($request); // }else{ // $user = User::create($request); // } $store = Store::updateOrCreate(['user_id' => $user->id],$store_data +[ 'name' => ['ar' => '.' , 'en' => '.']]); return ['user' => $user, 'store' => $store]; } public function addDays(array $data) { $user = auth('api')->user(); $store = $user->store; if ($data) { StoreTiming::where('store_id', $store->id)->delete(); foreach ($data as $day) { $timing = new StoreTiming(); $timing->day = Str::lower($day->day); $timing->from = $day->from ?? NULL; $timing->to = $day->to ?? NULL; $timing->store_id = $store->id; $timing->is_closed = $day->is_closed ?? 'false'; $timing->save(); } } return ['user' => $user, 'store' => $store]; } public function storeCompleteInfo(array $data) { $user = auth('api')->user(); $store = $user->store; $user->update([ 'name' => $data['user_name'], 'name_en' => $data['user_name_en'], 'completed_info' => 'true', 'status' => 'active', ]); $store->update($data + ['name' => ['ar' => $data['name_ar'], 'en' => $data['name_en']]]); if(isset($data['subcategories'])){ $store_id = $store->id; $user_id = $user->id; foreach (json_decode($data['subcategories']) as $subcategory) { UserCategory::create(['user_id' => $user_id, 'store_id' => $store_id, 'category_id' => $subcategory]); } } return $store; } public function delegateRegister(array $data) { $user = User::create($data['user']); $user->status = 'pending'; $user->approve = 'pending'; $user->type = 'delegate'; $user->update(); $user->delegateJoinRequests()->delete(); $delegate_join_request_data = $data['delegate_data']; // insert new DelegateJoinrequest::create($delegate_join_request_data + ['user_id' => $user->id, 'phone' => $user->phone, 'personal_image' => $user->avatar, 'email' => $user->email]); $user->update(['completed_info', 'true']); $user->sendVerificationCode(); return $user; } }
Back to File Manager