| @@ 89-116 (lines=28) @@ | ||
| 86 | * @param \Illuminate\Http\Request $request |
|
| 87 | * @return \Illuminate\Http\JsonResponse|array |
|
| 88 | */ |
|
| 89 | public function store(Request $request) |
|
| 90 | { |
|
| 91 | $this->authorize('user-create', $request->apiKey()); |
|
| 92 | ||
| 93 | $repo = new UserRepository; |
|
| 94 | try { |
|
| 95 | $user = $repo->create($request->only([ |
|
| 96 | 'custom_id', 'email', 'password', 'name_first', |
|
| 97 | 'name_last', 'username', 'root_admin', |
|
| 98 | ])); |
|
| 99 | ||
| 100 | $fractal = Fractal::create()->item($user)->transformWith(new UserTransformer($request)); |
|
| 101 | if ($request->input('include')) { |
|
| 102 | $fractal->parseIncludes(explode(',', $request->input('include'))); |
|
| 103 | } |
|
| 104 | ||
| 105 | return $fractal->withResourceName('user')->toArray(); |
|
| 106 | } catch (DisplayValidationException $ex) { |
|
| 107 | return response()->json([ |
|
| 108 | 'error' => json_decode($ex->getMessage()), |
|
| 109 | ], 400); |
|
| 110 | } catch (\Exception $ex) { |
|
| 111 | Log::error($ex); |
|
| 112 | return response()->json([ |
|
| 113 | 'error' => 'An unhandled exception occured while attemping to create this user. Please try again.', |
|
| 114 | ], 500); |
|
| 115 | } |
|
| 116 | } |
|
| 117 | ||
| 118 | /** |
|
| 119 | * Update a user. |
|
| @@ 125-152 (lines=28) @@ | ||
| 122 | * @param int $user |
|
| 123 | * @return \Illuminate\Http\RedirectResponse |
|
| 124 | */ |
|
| 125 | public function update(Request $request, $user) |
|
| 126 | { |
|
| 127 | $this->authorize('user-edit', $request->apiKey()); |
|
| 128 | ||
| 129 | $repo = new UserRepository; |
|
| 130 | try { |
|
| 131 | $user = $repo->update($user, $request->intersect([ |
|
| 132 | 'email', 'password', 'name_first', |
|
| 133 | 'name_last', 'username', 'root_admin', |
|
| 134 | ])); |
|
| 135 | ||
| 136 | $fractal = Fractal::create()->item($user)->transformWith(new UserTransformer($request)); |
|
| 137 | if ($request->input('include')) { |
|
| 138 | $fractal->parseIncludes(explode(',', $request->input('include'))); |
|
| 139 | } |
|
| 140 | ||
| 141 | return $fractal->withResourceName('user')->toArray(); |
|
| 142 | } catch (DisplayValidationException $ex) { |
|
| 143 | return response()->json([ |
|
| 144 | 'error' => json_decode($ex->getMessage()), |
|
| 145 | ], 400); |
|
| 146 | } catch (\Exception $ex) { |
|
| 147 | Log::error($ex); |
|
| 148 | return response()->json([ |
|
| 149 | 'error' => 'An unhandled exception occured while attemping to update this user. Please try again.', |
|
| 150 | ], 500); |
|
| 151 | } |
|
| 152 | } |
|
| 153 | ||
| 154 | /** |
|
| 155 | * Delete a user from the system. |
|