exists()); // Create shared options $options = [ 'token' => $token, 'user_id' => Auth::id(), 'item_id' => $request->unique_id, 'permission' => $request->permission, 'protected' => $request->isPassword, 'type' => $request->type === 'folder' ? 'folder' : 'file', 'password' => $request->has('password') ? Hash::make($request->password) : null, ]; // Store shared item $shared = Share::create($options); // Return shared record return Arr::except($shared, ['password', 'user_id', 'updated_at', 'created_at']); } /** * Update sharing * * @param Request $request * @return mixed */ public function update(Request $request) { // TODO: validacia // Get sharing record $shared = Share::where('token', $request->get('token'))->firstOrFail(); // Update sharing record $shared->update([ 'permission' => $request->permission, 'protected' => $request->isProtected, 'password' => $request->has('password') ? Hash::make($request->password) : $shared->password, ]); // Return shared record return Arr::except($shared, ['password', 'user_id', 'updated_at', 'created_at']); } /** * Delete sharing item * * @param Request $request * @return ResponseFactory|\Illuminate\Http\Response */ public function delete(Request $request) { // Get sharing record $shared = Share::where('token', $request->get('token'))->firstOrFail(); // Delete shared record $shared->delete(); // Done return response('Done!', 202); } }