/**
  * Bootstrap any application services.
  *
  * @return void
  */
 public function boot()
 {
     $request = $this->app->make('request');
     $fractal = $this->app->make('League\\Fractal\\Manager');
     $fractal = $fractal->setSerializer(new CustomArraySerializer());
     if ($request->has('include')) {
         $fractal->parseIncludes($request->get('include'));
     }
     $result = ['status' => true];
     response()->macro('return', function ($array = [], array $headers = []) use($result) {
         $result = array_merge($result, $array);
         return response()->json(['result' => $result], 200, $headers);
     });
     response()->macro('item', function ($item, \League\Fractal\TransformerAbstract $transformer, $status = 200, array $headers = []) use($fractal, $result) {
         $resource = new \League\Fractal\Resource\Item($item, $transformer, null);
         $result['result'] = $fractal->createData($resource)->toArray();
         return response()->json($result, $status, $headers);
     });
     response()->macro('collection', function ($collection, \League\Fractal\TransformerAbstract $transformer, $status = 200, array $headers = []) use($fractal, $result) {
         $resource = new \League\Fractal\Resource\Collection($collection, $transformer, null);
         $result['result'] = $fractal->createData($resource)->toArray();
         return response()->json($result, $status, $headers);
     });
     response()->macro('paginator', function ($collection, \League\Fractal\TransformerAbstract $transformer, $status = 200, array $headers = []) use($fractal, $result) {
         $resource = new \League\Fractal\Resource\Collection($collection, $transformer, null);
         $resource->setPaginator(new IlluminateSimplePaginatorAdapter($collection));
         $result['result'] = $fractal->createData($resource)->toArray();
         $result['meta'] = $result['result']['meta'];
         unset($result['result']['meta']);
         return response()->json($result, $status, $headers);
     });
 }
Ejemplo n.º 2
0
 /**
  * Create Fractal Resource
  *
  * @param $data
  * @param $transformer
  * @param $model
  * @return \League\Fractal\Resource\Collection|\League\Fractal\Resource\Item
  */
 private function createResource($data, $transformer, $model)
 {
     if ($data instanceof LengthAwarePaginator) {
         $resource = new \League\Fractal\Resource\Collection($data->getCollection(), $transformer, snake_case(str_plural($model)));
         $resource->setPaginator(new IlluminatePaginatorAdapter($data));
         if (config('ember.ember-cli-pagination')) {
             $resource->setMetaValue('page', $data->currentPage());
             $resource->setMetaValue('per_page', $data->perPage());
             $resource->setMetaValue('total', $data->lastPage());
         }
         return $resource;
     } else {
         if ($data instanceof Collection) {
             return new \League\Fractal\Resource\Collection($data, $transformer, snake_case(str_plural($model)));
         }
     }
     return new \League\Fractal\Resource\Item($data, $transformer, snake_case($model));
 }
Ejemplo n.º 3
0
                if ($distance <= 100) {
                    $userIds[] = $d->user_id;
                }
            }
        }
        // subsequent filters will be using the $userIds variable
        if (!empty($userIds) && !empty($skilbaseids)) {
            $userIds = array_intersect($userIds, $skilbaseids);
        } elseif (!empty($skilbaseids)) {
            $userIds = $skilbaseids;
        }
        Log::info($userIds);
        $users = \Motibu\Models\Candidate::with('user')->whereIn('user_id', $userIds)->paginate();
        $fractal = new \League\Fractal\Manager();
        $collection = $users->getCollection();
        $resource = new \League\Fractal\Resource\Collection($users, new \Motibu\Transformers\CandidateTransformer());
        $resource->setPaginator(new \League\Fractal\Pagination\IlluminatePaginatorAdapter($users));
        $rootScope = $fractal->createData($resource);
        return \Response::json(['professionals' => $rootScope->toArray()]);
    });
    Route::post('/place_order', function () {
        // TODO: here's where you do the stripe parts
        // simply adding a subscription to an user
        return \Response::json(['success' => true]);
    });
});
/**
 * Base URL will be api.motibu.com
 * Api Version Prefix
 */
Route::group(array('prefix' => 'v1', 'before' => ['oauth.add_auth_header', 'oauth', 'oauth.authenticate', 'auth.permissions'], 'after' => ['allow_cross_origin']), function () {