/**
  * Store a newly created ShareUser in storage.
  * POST /shareUsers
  *
  * @param Request $request
  *
  * @return Response
  */
 public function store(Request $request)
 {
     if (sizeof(ShareUser::$rules) > 0) {
         $validator = $this->validateRequestOrFail($request, ShareUser::$rules);
         if ($validator) {
             return $validator;
         }
     }
     $input = $request->all();
     $user = User::where('id', $input['user_id'])->first();
     if ($user) {
         $shared_with_other_account = User::where('phoneNo', $user->phoneNo)->lists('id');
         if (count($shared_with_other_account) > 0) {
             $alreadyShared = ShareUser::where('share_objectId', $input['share_objectId'])->wherein('user_id', $shared_with_other_account)->get();
             if (count($alreadyShared) > 0) {
                 return response()->json("The share object id has already been taken.", 403);
             }
         }
         $shareUsers = $this->shareUserRepository->create($input);
         $shared_user = User::where('objectId', $shareUsers->share_objectId)->first();
         if ($shared_user) {
             $shared_user->points += 10;
             $shared_user->update();
             $user->shared = true;
             $user->update();
             $role = Role::where('userId', $user->objectId)->first();
             if ($role) {
                 $user['role'] = $role->name;
             } else {
                 $user['role'] = 'User';
             }
         }
         return $this->sendResponse($user->toArray(), "ShareUser saved successfully");
     }
 }
 public function search($input)
 {
     $query = ShareUser::query();
     $columns = Schema::getColumnListing('shareUsers');
     $attributes = array();
     foreach ($columns as $attribute) {
         if (isset($input[$attribute]) and !empty($input[$attribute])) {
             $query->where($attribute, $input[$attribute]);
             $attributes[$attribute] = $input[$attribute];
         } else {
             $attributes[$attribute] = null;
         }
     }
     return [$query->get(), $attributes];
 }