/** * @param $provider * @param $productId * @return array */ public function productAction($provider, $productId) { $result = (new $provider())->product($productId); $fractal = new \League\Fractal\Manager(); $class = ucfirst($provider) . 'Transformer'; $transformer = new $class(); $resource = new \League\Fractal\Resource\Item($result, $transformer); return $fractal->createData($resource)->toArray(); }
/** * * @param \League\Fractal\Resource\ResourceInterface $fractal */ protected function writeJson($resource, $status = 200) { $fractal = new \League\Fractal\Manager(); $this->app->response->setStatus($status); $this->app->response->headers->set('Content-Type', 'application/json'); $this->app->contentType('application/json; charset=utf-8'); $fractalArray = $fractal->createData($resource)->toArray(); $this->app->response->setBody(json_encode($fractalArray, JSON_UNESCAPED_SLASHES)); }
/** * Register the application services. * * @return void */ public function register() { $app['Dingo\\Api\\Transformer\\Factory']->setAdapter(function ($app) { $fractal = new League\Fractal\Manager(); $fractal->setSerializer(new League\Fractal\Serializer\JsonApiSerializer()); return new Dingo\Api\Transformer\Adapter\Fractal($fractal); }); app('Dingo\\Api\\Transformer\\Factory')->register('AutoResume\\Entities\\User', 'AutoResume\\Transformers\\UserTransformer'); }
/** * Register the application services. * * @return void */ public function register() { // TODO Test this one out $this->app->bind('\\League\\Fractal\\Manager', function ($app) { $fractal = new \League\Fractal\Manager(); $serializer = new \League\Fractal\Serializer\JsonApiSerializer(env('API_DOMAIN', null)); $fractal->setSerializer($serializer); return $fractal; }); }
/** * Register the application services. * * @return void */ public function register() { $this->app->bind('\\League\\Fractal\\Manager', function ($app) { $fractal = new \League\Fractal\Manager(); $baseUrl = url('/'); $serializer = new \League\Fractal\Serializer\JsonApiSerializer($baseUrl); $fractal->setSerializer($serializer); return $fractal; }); $this->app->bind('Dingo\\Api\\Transformer\\Adapter\\Fractal', function ($app) { $fractal = $app->make('\\League\\Fractal\\Manager'); return new \Dingo\Api\Transformer\Adapter\Fractal($fractal); }); }
/** * @param int $id * @return mixed */ public function show($id) { if ($item = $this->repository->find($id)) { $resource = new Item($item, $this->getTransformer(), $item->getTable()); return $this->manager->createData($resource)->toJson(); } return null; }
public function updateProductAction($id) { list($provider, $productId) = explode('-', Input::get('token')); $result = (new $provider())->product($productId); $fractal = new \League\Fractal\Manager(); $class = ucfirst($provider) . 'Transformer'; $transformer = new $class(); $resource = new \League\Fractal\Resource\Item($result, $transformer); $data = $fractal->createData($resource)->toArray()['data']; $product = Product::find($id); $product->product_id = $productId; $product->title = $data['title']; $product->description = $data['description']; $product->provider = $provider; $product->price = $data['price']; $product->target = $data['target']; $product->save(); return Redirect::route('products'); }
function fractal_item_array($model, $transformer) { $manager = new League\Fractal\Manager(); $item = new League\Fractal\Resource\Item($model, $transformer); return $manager->createData($item)->toArray(); }
function fractal_item_array($model, $transformer, $includes = null) { $manager = new League\Fractal\Manager(); if ($includes !== null) { $manager->parseIncludes($includes); } $item = new League\Fractal\Resource\Item($model, $transformer); return $manager->createData($item)->toArray(); }
$c = 2 * asin(sqrt($a)); $distance = $earth_radius * $c; 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
function fractal_api_serialize_collection($model, $transformer, $includes = null) { $manager = new League\Fractal\Manager(); if ($includes !== null) { $manager->parseIncludes($includes); } $manager->setSerializer(new App\Serializers\ApiSerializer()); // we're using collection instead of item here, so we can peak at the items beforehand $collection = new League\Fractal\Resource\Collection($model, $transformer); return $manager->createData($collection)->toArray(); }
}); /** * @description Phalcon - AuthManager */ $di->setShared(AppServices::AUTH_MANAGER, function () use($di, $config) { $authManager = new \PhalconRest\Auth\Manager($config->authentication->expirationTime); $authManager->registerAccountType(App\Auth\UsernameAccountType::NAME, new \App\Auth\UsernameAccountType()); return $authManager; }); /** * @description Phalcon - \Phalcon\Mvc\Model\Manager */ $di->setShared(AppServices::MODELS_MANAGER, function () use($di) { $modelsManager = new \Phalcon\Mvc\Model\Manager(); return $modelsManager->setEventsManager($di->get(AppServices::EVENTS_MANAGER)); }); /** * @description PhalconRest - \League\Fractal\Manager */ $di->setShared(AppServices::FRACTAL_MANAGER, function () { $fractal = new \League\Fractal\Manager(); $fractal->setSerializer(new \App\Fractal\CustomSerializer()); return $fractal; }); /** * @description App - \Library\App\Services\UserService */ $di->setShared(AppServices::USER_SERVICE, function () { return new \App\Services\UserService(); }); return $di;
<?php return ['vendor' => 'zeropingheroes.lanager', 'version' => 'v1', 'prefix' => 'api', 'domain' => null, 'conditional_request' => false, 'strict' => false, 'debug' => false, 'auth' => ['lanager' => function ($app) { return new Zeropingheroes\Lanager\Domain\Users\UserApiKeyAuthorizationProvider($app['auth']); }], 'throttling' => [], 'transformer' => function ($app) { $fractal = new League\Fractal\Manager(); $fractal->setSerializer(new League\Fractal\Serializer\ArraySerializer()); return new Dingo\Api\Transformer\FractalTransformer($fractal); }, 'default_format' => 'json', 'formats' => ['json' => 'Dingo\\Api\\Http\\ResponseFormat\\JsonResponseFormat']];
// Register oauth2-server-laravel package $app->register(\LucaDegasperi\OAuth2Server\Storage\FluentStorageServiceProvider::class); $app->register(\LucaDegasperi\OAuth2Server\OAuth2ServerServiceProvider::class); // Register tymon/jwt-auth package $app->register(\Tymon\JWTAuth\Providers\JWTAuthServiceProvider::class); // Register dingo/api package $app->register(Dingo\Api\Provider\LumenServiceProvider::class); class_alias('Tymon\\JWTAuth\\Facades\\JWTAuth', 'JWTAuth'); /** This gives you finer control over the payloads you create if you require it. * Source: https://github.com/tymondesigns/jwt-auth/wiki/Installation */ class_alias('Tymon\\JWTAuth\\Facades\\JWTFactory', 'JWTFactory'); // Optional // Dingo Response Transformer $app['Dingo\\Api\\Transformer\\Factory']->setAdapter(function ($app) { $fractal = new League\Fractal\Manager(); $fractal->setSerializer(new League\Fractal\Serializer\JsonApiSerializer()); return new Dingo\Api\Transformer\Adapter\Fractal($fractal); }); // Dingo basic auth $app['Dingo\\Api\\Auth\\Auth']->extend('basic', function ($app) { return new Dingo\Api\Auth\Provider\Basic($app['auth'], 'phone'); }); // Dingo OAuth2.0 auth $app['Dingo\\Api\\Auth\\Auth']->extend('oauth', function ($app) { $provider = new Dingo\Api\Auth\Provider\OAuth2($app['oauth2-server.authorizer']->getChecker()); $provider->setUserResolver(function ($id) { return App\User::findOrFail($id); }); $provider->setClientResolver(function ($id) { // TODO
function getTransformedItem($data, League\Fractal\TransformerAbstract $transformer, $resourceKey = null) { if (empty($data)) { return null; } $item = new League\Fractal\Resource\Item($data, $transformer, $resourceKey); $manager = new League\Fractal\Manager(); $output = $manager->createData($item)->toArray(); return $output['data']; }
function json_collection($model, $transformer, $includes = null) { $manager = new League\Fractal\Manager(); if ($includes !== null) { $manager->parseIncludes($includes); } $manager->setSerializer(new App\Serializers\ApiSerializer()); // da bess if (is_string($transformer)) { $transformer = 'App\\Transformers\\' . str_replace('/', '\\', $transformer) . 'Transformer'; $transformer = new $transformer(); } // we're using collection instead of item here, so we can peek at the items beforehand $collection = new League\Fractal\Resource\Collection($model, $transformer); return $manager->createData($collection)->toArray(); }