tag:github.com,2008:https://github.com/nuwave/laravel-graphql-relay/releases
Release notes from laravel-graphql-relay
2016-11-17T13:57:28Z
tag:github.com,2008:Repository/46281174/v0.3.4
2016-11-17T13:58:15Z
v0.3.4: Merge pull request #25 from hosmelq/master
<p>Merge pull request <a class="issue-link js-issue-link" href="https://github.com/nuwave/laravel-graphql-relay/pull/25">#25</a> from hosmelq/master</p>
<p>Use getKey method instead of id</p>
chrissm79
tag:github.com,2008:Repository/46281174/v0.3.3
2016-04-27T23:08:36Z
v0.3.3: Merge pull request #21 from davidstoker/add-root-value
<p>Merge pull request <a class="issue-link js-issue-link" href="https://github.com/nuwave/laravel-graphql-relay/pull/21">#21</a> from davidstoker/add-root-value</p>
<p>Allow for passing rootValue</p>
chrissm79
tag:github.com,2008:Repository/46281174/v0.3.2
2016-04-25T14:35:31Z
v0.3.2
No content.
chrissm79
tag:github.com,2008:Repository/46281174/v0.3.1
2016-04-22T20:27:54Z
v0.3.1
No content.
chrissm79
tag:github.com,2008:Repository/46281174/v0.3.0
2016-03-12T15:17:43Z
v0.3.0: Merge pull request #10 from nuwave/develop
<p>Merge pull request <a class="issue-link js-issue-link" href="https://github.com/nuwave/laravel-graphql-relay/pull/10">#10</a> from nuwave/develop</p>
<p>Merge develop branch</p>
chrissm79
tag:github.com,2008:Repository/46281174/v0.2.0
2016-01-27T13:57:13Z
v0.2.0
No content.
chrissm79
tag:github.com,2008:Repository/46281174/v0.1.6
2016-01-25T02:13:24Z
v0.1.6
No content.
chrissm79
tag:github.com,2008:Repository/46281174/v0.1.5
2016-01-08T17:47:42Z
Dependency version bump
No content.
chrissm79
tag:github.com,2008:Repository/46281174/v0.1.4
2015-11-23T21:33:16Z
Default resolver for connections
<p>If no resolve method is set on a connection, the following function will be used:</p>
<div class="highlight highlight-text-html-php notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="function ($collection, array $args, ResolveInfo $info) use ($name) {
$items = [];
if ($collection instanceof Model) {
$items = $collection->getAttribute($name);
} else if (is_object($collection) && method_exists($collection, 'get')) {
$items = $collection->get($name);
} else if (is_array($collection) && isset($collection[$name])) {
$items = new Collection($collection[$name]);
}
if (isset($args['first'])) {
$total = $items->count();
$first = $args['first'];
$after = $this->decodeCursor($args);
$currentPage = $first && $after ? floor(($first + $after) / $first) : 1;
return new Paginator(
$items->slice($after)->take($first),
$total,
$first,
$currentPage
);
}
return new Paginator(
$items,
count($items),
count($items)
);
}"><pre><span class="pl-k">function</span> (<span class="pl-s1"><span class="pl-c1">$</span>collection</span>, <span class="pl-smi">array</span> <span class="pl-s1"><span class="pl-c1">$</span>args</span>, <span class="pl-smi"><span class="pl-smi">ResolveInfo</span></span> <span class="pl-s1"><span class="pl-c1">$</span>info</span>) <span class="pl-k">use</span> (<span class="pl-s1"><span class="pl-c1">$</span>name</span>) {
<span class="pl-s1"><span class="pl-c1">$</span>items</span> = [];
<span class="pl-k">if</span> (<span class="pl-s1"><span class="pl-c1">$</span>collection</span> <span class="pl-k">instanceof</span> Model) {
<span class="pl-s1"><span class="pl-c1">$</span>items</span> = <span class="pl-s1"><span class="pl-c1">$</span>collection</span>-><span class="pl-en">getAttribute</span>(<span class="pl-s1"><span class="pl-c1">$</span>name</span>);
} <span class="pl-k">else</span> <span class="pl-k">if</span> (<span class="pl-en">is_object</span>(<span class="pl-s1"><span class="pl-c1">$</span>collection</span>) && <span class="pl-en">method_exists</span>(<span class="pl-s1"><span class="pl-c1">$</span>collection</span>, <span class="pl-s">'<span class="pl-s">get</span>'</span>)) {
<span class="pl-s1"><span class="pl-c1">$</span>items</span> = <span class="pl-s1"><span class="pl-c1">$</span>collection</span>-><span class="pl-en">get</span>(<span class="pl-s1"><span class="pl-c1">$</span>name</span>);
} <span class="pl-k">else</span> <span class="pl-k">if</span> (<span class="pl-en">is_array</span>(<span class="pl-s1"><span class="pl-c1">$</span>collection</span>) && <span class="pl-en">isset</span>(<span class="pl-s1"><span class="pl-c1">$</span>collection</span>[<span class="pl-s1"><span class="pl-c1">$</span>name</span>])) {
<span class="pl-s1"><span class="pl-c1">$</span>items</span> = <span class="pl-k">new</span> <span class="pl-v">Collection</span>(<span class="pl-s1"><span class="pl-c1">$</span>collection</span>[<span class="pl-s1"><span class="pl-c1">$</span>name</span>]);
}
<span class="pl-k">if</span> (<span class="pl-en">isset</span>(<span class="pl-s1"><span class="pl-c1">$</span>args</span>[<span class="pl-s">'<span class="pl-s">first</span>'</span>])) {
<span class="pl-s1"><span class="pl-c1">$</span>total</span> = <span class="pl-s1"><span class="pl-c1">$</span>items</span>-><span class="pl-en">count</span>();
<span class="pl-s1"><span class="pl-c1">$</span>first</span> = <span class="pl-s1"><span class="pl-c1">$</span>args</span>[<span class="pl-s">'<span class="pl-s">first</span>'</span>];
<span class="pl-s1"><span class="pl-c1">$</span>after</span> = <span class="pl-s1"><span class="pl-c1">$</span><span class="pl-smi">this</span></span>-><span class="pl-en">decodeCursor</span>(<span class="pl-s1"><span class="pl-c1">$</span>args</span>);
<span class="pl-s1"><span class="pl-c1">$</span>currentPage</span> = <span class="pl-s1"><span class="pl-c1">$</span>first</span> && <span class="pl-s1"><span class="pl-c1">$</span>after</span> ? <span class="pl-en">floor</span>((<span class="pl-s1"><span class="pl-c1">$</span>first</span> + <span class="pl-s1"><span class="pl-c1">$</span>after</span>) / <span class="pl-s1"><span class="pl-c1">$</span>first</span>) : <span class="pl-c1">1</span>;
<span class="pl-k">return</span> <span class="pl-k">new</span> <span class="pl-v">Paginator</span>(
<span class="pl-s1"><span class="pl-c1">$</span>items</span>-><span class="pl-en">slice</span>(<span class="pl-s1"><span class="pl-c1">$</span>after</span>)-><span class="pl-en">take</span>(<span class="pl-s1"><span class="pl-c1">$</span>first</span>),
<span class="pl-s1"><span class="pl-c1">$</span>total</span>,
<span class="pl-s1"><span class="pl-c1">$</span>first</span>,
<span class="pl-s1"><span class="pl-c1">$</span>currentPage</span>
);
}
<span class="pl-k">return</span> <span class="pl-k">new</span> <span class="pl-v">Paginator</span>(
<span class="pl-s1"><span class="pl-c1">$</span>items</span>,
<span class="pl-en">count</span>(<span class="pl-s1"><span class="pl-c1">$</span>items</span>),
<span class="pl-en">count</span>(<span class="pl-s1"><span class="pl-c1">$</span>items</span>)
);
}</pre></div>
chrissm79
tag:github.com,2008:Repository/46281174/v0.1.3
2015-11-22T14:58:36Z
Added mutation test helper
<p>Helper trait that allows you to easily test mutations:</p>
<div class="highlight highlight-text-html-php notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="<?php
use Nuwave\Relay\Traits\MutationTestTrait;
use Illuminate\Foundation\Testing\DatabaseTransactions;
class CreateUserMutationTest extends TestCase
{
use DatabaseTransactions, MutationTestTrait;
/**
* @test
*/
public function itCanCreateANewUser()
{
$this->mutate('createUser', [
'firstName' => 'John',
'lastName' => 'Doe',
'email' => 'john.doe@example.com',
'password' => 'foobar',
'password_confirmation' => 'foobar'
])->seeJson([
'firstName' => 'John',
'lastName' => 'Doe'
]);
}
}
"><pre><span class="pl-ent"><?php</span>
<span class="pl-k">use</span> <span class="pl-v">Nuwave</span>\<span class="pl-v">Relay</span>\<span class="pl-v">Traits</span>\<span class="pl-smi">MutationTestTrait</span>;
<span class="pl-k">use</span> <span class="pl-v">Illuminate</span>\<span class="pl-v">Foundation</span>\<span class="pl-v">Testing</span>\<span class="pl-smi">DatabaseTransactions</span>;
<span class="pl-k">class</span> CreateUserMutationTest <span class="pl-k">extends</span> TestCase
{
<span class="pl-k">use</span> DatabaseTransactions, MutationTestTrait;
<span class="pl-c">/**</span>
<span class="pl-c"> * @test</span>
<span class="pl-c"> */</span>
<span class="pl-k">public</span> <span class="pl-k">function</span> <span class="pl-en">itCanCreateANewUser</span>()
{
<span class="pl-s1"><span class="pl-c1">$</span><span class="pl-smi">this</span></span>-><span class="pl-en">mutate</span>(<span class="pl-s">'<span class="pl-s">createUser</span>'</span>, [
<span class="pl-s">'<span class="pl-s">firstName</span>'</span> => <span class="pl-s">'<span class="pl-s">John</span>'</span>,
<span class="pl-s">'<span class="pl-s">lastName</span>'</span> => <span class="pl-s">'<span class="pl-s">Doe</span>'</span>,
<span class="pl-s">'<span class="pl-s">email</span>'</span> => <span class="pl-s">'<span class="pl-s">john.doe@example.com</span>'</span>,
<span class="pl-s">'<span class="pl-s">password</span>'</span> => <span class="pl-s">'<span class="pl-s">foobar</span>'</span>,
<span class="pl-s">'<span class="pl-s">password_confirmation</span>'</span> => <span class="pl-s">'<span class="pl-s">foobar</span>'</span>
])-><span class="pl-en">seeJson</span>([
<span class="pl-s">'<span class="pl-s">firstName</span>'</span> => <span class="pl-s">'<span class="pl-s">John</span>'</span>,
<span class="pl-s">'<span class="pl-s">lastName</span>'</span> => <span class="pl-s">'<span class="pl-s">Doe</span>'</span>
]);
}
}</pre></div>
chrissm79