Created
October 16, 2020 06:34
-
-
Save thewebartisan7/1e1302e851088e9830b8b4ea8869c950 to your computer and use it in GitHub Desktop.
Generated API Controller
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <?php | |
| namespace App\Api\Http\Controllers; | |
| use Illuminate\Http\Request; | |
| use App\Models\User; | |
| use Spatie\QueryBuilder\QueryBuilder; | |
| use App\Api\Http\Resources\User as UserResource; | |
| use App\Api\Http\Resources\UserCollection; | |
| use App\Api\Http\Requests\UserCreateRequest; | |
| use App\Api\Http\Requests\UserUpdateRequest; | |
| use App\Api\Http\Requests\UserUpdateAccountRequest; | |
| class UserController extends BaseController | |
| { | |
| /** | |
| * @var User $user | |
| */ | |
| protected $user; | |
| /** | |
| * Controller constructor | |
| * | |
| * @param User $user | |
| */ | |
| public function __construct(User $user) | |
| { | |
| $this->user = $user; | |
| } | |
| /** | |
| * Display a listing of the users. | |
| * | |
| * @return UserCollection | |
| */ | |
| public function index() | |
| { | |
| /** @var User $users */ | |
| $users = QueryBuilder::for($this->user->query()) | |
| ->allowedFilters($this->user::$filterableBy) | |
| ->defaultSort($this->user::getOrderByColumnName()) | |
| ->allowedSorts($this->user::$sortableBy) | |
| ->jsonPaginate(); | |
| return new UserCollection($users); | |
| } | |
| /** | |
| * Display the specified user. | |
| * | |
| * @param User $user | |
| * | |
| * @return UserResource | |
| */ | |
| public function show(User $user) | |
| { | |
| return new UserResource($user); | |
| } | |
| /** | |
| * Store a newly created User in storage. | |
| * | |
| * @param UserCreateRequest $request | |
| * | |
| * @return UserResource | |
| */ | |
| public function store(UserCreateRequest $request) | |
| { | |
| /** @var User $user */ | |
| $user = $this->user->create($request->validated()); | |
| return new UserResource($user); | |
| } | |
| /** | |
| * Update the specified user in storage. | |
| * | |
| * @param User $user | |
| * @param UserUpdateRequest $request | |
| * | |
| * @return UserResource | |
| */ | |
| public function update(User $user, UserUpdateRequest $request) | |
| { | |
| $validated = $request->validated(); | |
| $user->fill($validated)->save(); | |
| return new UserResource($user); | |
| } | |
| /** | |
| * Update the specified user in storage. | |
| * | |
| * @param User $user | |
| * @param UserUpdateAccountRequest $request | |
| * | |
| * @return UserResource | |
| */ | |
| public function updateAccount(User $user, UserUpdateAccountRequest $request) | |
| { | |
| $validated = $request->validated(); | |
| if(empty($validated['password'])) { | |
| unset($validated['password']); | |
| } | |
| $user->fill($validated)->save(); | |
| return new UserResource($user); | |
| } | |
| /** | |
| * Trash the specified User. | |
| * | |
| * @param User $user | |
| * | |
| * @return UserResource | |
| */ | |
| public function trash(User $user) | |
| { | |
| $user->delete(); | |
| return new UserResource($user); | |
| } | |
| /** | |
| * Remove the specified User from storage. | |
| * | |
| * @param User $user | |
| * | |
| * @return UserResource | |
| */ | |
| public function destroy(User $user) | |
| { | |
| $user->forceDelete(); | |
| return new UserResource($user); | |
| } | |
| /** | |
| * Restore trashed user. | |
| * | |
| * @param User $user | |
| * | |
| * @return UserResource | |
| */ | |
| public function restore(User $user) | |
| { | |
| $user->restore(); | |
| return new UserResource($user); | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment