/** * 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); }); }
/** * 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)); }
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 () {