Skip to content
  • P
    Projects
  • G
    Groups
  • S
    Snippets
  • Help

semour / semour_web

  • This project
    • Loading...
  • Sign in
Go to a project
  • Project
  • Repository
  • Issues 0
  • Merge Requests 0
  • Pipelines
  • Wiki
  • Snippets
  • Settings
  • Activity
  • Graph
  • Charts
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • Files
  • Commits
  • Branches
  • Tags
  • Contributors
  • Graph
  • Compare
  • Charts
Find file
BlameHistoryPermalink
Switch branch/tag
  • semour_web
  • app
  • Http
  • Controllers
  • Api
  • UserAddressApiController.php
  • 杨树贤's avatar
    新增地址返回地址id · a63f1e23
    杨树贤 committed 2 years ago
    a63f1e23
UserAddressApiController.php 2.55 KB
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92
<?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');
    }

}