/**
  * Returns data about user
  *
  * @param $id
  * @param Request $request
  * @return \Illuminate\Http\JsonResponse
  */
 public function view($id, Request $request)
 {
     // only profile owner can see data
     if ($request->user()->id !== (int) $id) {
         abort(403);
     }
     return response()->json($this->userService->getUserProfileData($id));
 }
 /**
  * @dataProvider userDataProvider
  */
 public function testGetUserProfileData($id, $userData, $expectedData)
 {
     $userStorageMock = $this->getMock('\\App\\Contracts\\Storages\\UserStorageContract');
     $userStorageMock->expects(static::any())->method('getUserData')->with($id)->willReturn($userData);
     $itemStorageMock = $this->getMock('\\App\\Contracts\\Storages\\ItemStorageContract', ['getCategoriesItems']);
     $userService = new UserService($userStorageMock, $itemStorageMock);
     $data = $userService->getUserProfileData($id);
     static::assertEquals($expectedData, $data);
 }