Edit File: ProfileController.php
<?php namespace App\Http\Controllers\Api; use App\Http\Controllers\Controller; use App\Http\Requests\Api\Auth\ActivationRequest; use App\Http\Requests\Api\Profile\UpdateRequest; use App\Http\Requests\Api\Profile\UpdateStoreRequest; use App\Http\Resources\DelegateResource; use App\Http\Resources\StoreProfileResource; use App\Http\Resources\UserResource; use App\Models\Setting; use App\Models\StoreTiming; use App\Traits\ApiTrait; use App\Traits\GeneralTrait; use App\Traits\Uploadable; use Illuminate\Http\Request; use App\Services\Store\HomeServices; use App\Http\Requests\Api\Profile\ChangePhoneRequest; use App\Http\Requests\Api\Profile\ChangeEmailRequest; class ProfileController extends Controller { use ApiTrait, Uploadable, GeneralTrait; public function show() { $user = auth('api')->user(); $data['user'] = new UserResource($user); if ($user->type == 'delegate'){ $data['user'] = new DelegateResource($user); } $settings = Setting::all()->pluck('value', 'key'); $data['telegram'] = $settings['telegram'] ?? ''; return $this->dataReturn($data); } public function store_show() { $user = auth('api')->user(); $store = $user->store; $data = new StoreProfileResource($store); return $this->dataReturn($data); } public function sendPhoneVerificationCode() { $user = auth('api')->user(); $user->sendVerificationCode(); $msg = trans('auth.activation_code_sent'); return $this->successMsg($msg); } public function sendEmailVerificationCode() { $user = auth('api')->user(); $user->sendEmailVerificationCode(); $msg = trans('auth.activation_code_sent'); return $this->successMsg($msg); } public function activatePhone(ActivationRequest $request) { $user = auth('api')->user(); if ($user->code != $request['code']) { $msg = trans('auth.invalid_code'); return $this->failMsg($msg); } $user->markAsActive(); $msg = trans('auth.activated'); return $this->successMsg($msg); } public function changePhone(ChangePhoneRequest $request) { $user = auth('api')->user(); $number = $this->convert2english($request->phone); $phone = $this->phoneValidate($number); if ($phone != $user->phone) { $unique = $this->is_unique('phone', $phone); if ($unique) { $msg = trans('auth.phone_unique'); return $this->failMsg($msg); } $request['changed_phone'] = $phone; } $user->update(['changed_phone' => $phone]); $user->sendVerificationCode('true'); $msg = trans('auth.activation_code_sent'); return $this->successMsg($msg); } public function changeEmail(ChangeEmailRequest $request) { $user = auth('api')->user(); $user->update(['changed_email' => $request->email]); $user->sendEmailVerificationCode('true'); $msg = trans('auth.activation_code_sent'); return $this->successMsg($msg); } public function changedPhoneActivation(ActivationRequest $request) { $user = auth('api')->user(); if ($user->code != $request['code']) { $msg = trans('auth.invalid_code'); return $this->failMsg($msg); } $user->update([ 'completed_info' => 'true', ]); $user->confirmChangePhone(); $data['user'] = new UserResource($user); $msg = trans('dashboard.alerts.updated_successfully'); return $this->successReturn($msg, $data); } public function resendChangedPhoneActivation(){ $user = auth('api')->user(); $user->sendVerificationCode('true'); $msg = trans('auth.activation_code_sent'); return $this->successMsg($msg); } public function resendChangedEmailActivation(){ $user = auth('api')->user(); $user->sendEmailVerificationCode('true'); $msg = trans('auth.activation_code_sent'); return $this->successMsg($msg); } public function changedEmailActivation(ActivationRequest $request) { $user = $request->user(); if ($user->code != $request['code']) { $msg = trans('auth.invalid_code'); return $this->failMsg($msg); } $user->update([ 'completed_info' => 'true', ]); $user->confirmChangeEmail(); $data['user'] = new UserResource($user); $msg = trans('dashboard.alerts.updated_successfully'); return $this->successReturn($msg, $data); } public function update(UpdateRequest $request) { $user = auth('api')->user(); // change avatar if ($request['edit_avatar']) { $request['avatar'] = $request['edit_avatar']; } // update user $user->update($request->except('edit_avatar')); $data['user'] = new UserResource($user); $msg = trans('dashboard.alerts.updated_successfully'); return $this->successReturn($msg, $data); } public function wallet(Request $request) { $user = auth('api')->user(); $data['wallet'] = number_format($user->wallet, 2); return $this->successReturn('', $data); } public function update_store(UpdateStoreRequest $request) { $user = auth('api')->user(); $store = $user->store; $store->update($request->validated()); // $user->update($request->validated()); $data = new StoreProfileResource($store); $msg = trans('dashboard.alerts.updated_successfully'); return $this->successReturn($msg, $data); } public function updateDays(Request $request){ $user = auth('api')->user(); $store = $user->store; StoreTiming::where('store_id' , $store->id)->delete(); foreach(json_decode($request['days']) as $day){ StoreTiming::create([ 'store_id' => $store->id, 'day' => $day->day, 'from' => $day->from, 'to' => $day->to, ]); } $data = new StoreProfileResource($store); $msg = trans('dashboard.alerts.updated_successfully'); return $this->successReturn($msg, $data); } public function deleteProfile(Request $request) { $user = auth('api')->user(); if ($user->type == 'store') { $store = $user->store; $store->delete(); } $user->delete(); $msg = trans('dashboard.alerts.deleted_successfully'); return $this->successMsg($msg); } }
Back to File Manager