<?php namespace App\Http\Controllers\Api; use App\Http\Requests\UserAddressSave; use App\Http\Services\UserAddressService; use App\Models\UserAddressModel; use Illuminate\Foundation\Auth\Access\AuthorizesRequests; use Illuminate\Foundation\Bus\DispatchesJobs; use Illuminate\Foundation\Validation\ValidatesRequests; use Illuminate\Http\Request; class UserAddressApiController extends Controller { public function list(Request $request) { $userId = $request->user->id; $data = UserAddressService::getUserAddressList($userId); return $this->setSuccessData($data, count($data)); } public function detail(Request $request) { $addressId = $request->input('address_id'); $data = UserAddressService::getUserAddressDetail($addressId); return $this->setSuccessData($data); } public function add(UserAddressSave $request) { $address = $request->only([ 'email', 'phone', 'country', 'address_type', 'last_name', 'first_name', 'company_name', 'detail_address', 'city', 'province', 'post_code', 'is_default' ]); $user = $request->user; $addressId = UserAddressService::addUserAddress($address, $user); if (!$addressId) { return $this->setError('Add user address failed'); } return $this->setSuccessData($addressId, 0, 0, 'Add user address success'); } public function update(UserAddressSave $request) { $address = $request->only([ 'address_id', 'email', 'phone', 'country', 'address_type', 'last_name', 'first_name', 'company_name', 'detail_address', 'city', 'province', 'post_code', 'is_default', ]); $user = $request->user; $result = UserAddressService::updateUserAddress($address, $user); if (!$result) { return $this->setError('Update user address failed'); } return $this->setSuccess('Update user address success'); } public function delete(Request $request) { $addressId = $request->input('address_id'); $result = UserAddressModel::where('address_id', $addressId)->delete(); if (!$result) { return $this->setError('Delete user address failed'); } return $this->setSuccess('Delete user address success'); } }