Skip to content

Commit 91f35b9

Browse files
committed
Move "id" argument for updatePage fields into "page" argument.
1 parent 2dcfe40 commit 91f35b9

27 files changed

+88
-78
lines changed

src/Field/Mutation/UpdatePage.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ public static function field(Template $template)
2020
'description' => self::description($template),
2121
'type' => PageType::type($template),
2222
'args' => [
23-
'id' => Type::nonNull(Type::id()),
2423
'page' => Type::nonNull(PageUpdateInputType::type($template)),
2524
],
2625
'resolve' => function ($value, $args) use ($template) {
@@ -46,7 +45,7 @@ public static function resolve($value, $args, $template)
4645
$user = Utils::user();
4746
$sanitizer = Utils::sanitizer();
4847
$values = (array) $args['page'];
49-
$id = (integer) $args['id'];
48+
$id = (integer) $values['id'];
5049
$p = $pages->get($id);
5150

5251
// make sure the target page exists
@@ -140,6 +139,9 @@ public static function resolve($value, $args, $template)
140139
$p->name = $name;
141140
}
142141

142+
// unset the id because you cannot update the id
143+
unset($values['id']);
144+
143145
// unset the parent and name as we set them above
144146
unset($values['parent']);
145147
unset($values['name']);

src/InputType/PageUpdateInputType.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
<?php namespace ProcessWire\GraphQL\InputType;
22

3+
use GraphQL\Type\Definition\Type;
34
use GraphQL\Type\Definition\InputObjectType;
45
use ProcessWire\Template;
56
use ProcessWire\Page;
@@ -31,6 +32,13 @@ public static function getFields(Template $template)
3132
{
3233
$fields = [];
3334

35+
// add the page id
36+
$fields[] = [
37+
'name' => 'id',
38+
'type' => Type::nonNull(Type::id()),
39+
'description' => 'ProcessWire Page id of the page you want to update.',
40+
];
41+
3442
// add built in fields
3543
$fields = array_merge($fields, PageCreateInputType::getBuiltInFields());
3644

test/Field/Mutation/UpdatePage/CaseOneTest.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,16 +22,16 @@ class UpdatePageCaseOneTest extends GraphQLTestCase {
2222
public function testValue()
2323
{
2424
$skyscraper = Utils::pages()->get("template=skyscraper");
25-
$query = 'mutation updatePage ($id: Int!, $page: SkyscraperUpdateInput!) {
26-
updateSkyscraper (id: $id, page: $page) {
25+
$query = 'mutation updatePage ($page: SkyscraperUpdateInput!) {
26+
updateSkyscraper (page: $page) {
2727
title
2828
}
2929
}';
3030
$variables = [
3131
"page" => [
32+
"id" => $skyscraper->id,
3233
"title" => "Old Building Sky"
3334
],
34-
"id" => $skyscraper->id
3535
];
3636
$res = self::execute($query, $variables);
3737
$this->assertEquals(2, count($res->errors), 'updateSkyscraper is not available if `skyscraper` template is not legal.');

test/Field/Mutation/UpdatePage/CaseThreeTest.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ class UpdatePageCaseThreeTest extends GraphQLTestCase {
2222
public function testValue()
2323
{
2424
$skyscraper = Utils::pages()->get("template=skyscraper");
25-
$query = 'mutation updatePage ($id: ID!, $page: SkyscraperUpdateInput!) {
26-
skyscraper: updateSkyscraper (id: $id, page: $page) {
25+
$query = 'mutation updatePage ($page: SkyscraperUpdateInput!) {
26+
skyscraper: updateSkyscraper (page: $page) {
2727
name
2828
id
2929
title
@@ -34,12 +34,12 @@ public function testValue()
3434
}';
3535
$variables = [
3636
"page" => [
37+
"id" => $skyscraper->id,
3738
"title" => "Updated Building Sky",
3839
"height" => 123,
3940
"floors" => 13,
4041
"body" => "Everyone has a plan until they get the first hit."
4142
],
42-
"id" => $skyscraper->id
4343
];
4444
$res = self::execute($query, $variables);
4545
$this->assertEquals($variables['page']['title'], $res->data->skyscraper->title, 'updateSkyscraper returns updated value of the `title`.');

test/Field/Mutation/UpdatePage/CaseTwoTest.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,18 +22,18 @@ class UpdatePageCaseTwoTest extends GraphQLTestCase {
2222
public function testValue()
2323
{
2424
$skyscraper = Utils::pages()->get("template=skyscraper");
25-
$query = 'mutation updatePage ($id: ID!, $page: SkyscraperUpdateInput!) {
26-
updateSkyscraper (id: $id, page: $page) {
25+
$query = 'mutation updatePage ($page: SkyscraperUpdateInput!) {
26+
updateSkyscraper (page: $page) {
2727
name
2828
}
2929
}';
3030
$variables = [
3131
"page" => [
32+
"id" => $skyscraper->id,
3233
"title" => "Old Building Sky",
3334
"height" => 353,
3435
"floors" => 84,
3536
],
36-
"id" => $skyscraper->id
3737
];
3838
$res = self::execute($query, $variables);
3939
$this->assertEquals(1, count($res->errors), '`title` field is invalid for SkyscraperUpdateInputType if `title` field is not legal.');

test/Field/Page/Fieldtype/FieldtypeMapMarker/CaseThreeTest.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@ class FieldtypeMapMarkerCaseThreeTest extends GraphQLTestCase {
2323
public function testValue()
2424
{
2525
$skyscraper = Utils::pages()->get("template=skyscraper");
26-
$query = 'mutation updatePage($id: ID!, $page: SkyscraperUpdateInput!) {
27-
skyscraper: updateSkyscraper (id: $id, page: $page) {
26+
$query = 'mutation updatePage($page: SkyscraperUpdateInput!) {
27+
skyscraper: updateSkyscraper (page: $page) {
2828
id
2929
map {
3030
lat
@@ -40,8 +40,8 @@ public function testValue()
4040
$zoom = 3;
4141
$name = "updated-building-with-location";
4242
$variables = [
43-
'id' => $skyscraper->id,
4443
'page' => [
44+
'id' => $skyscraper->id,
4545
'map' => [
4646
'lat' => $lat,
4747
'lng' => $lng,

test/Field/Page/Fieldtype/FieldtypeRepeater/CaseFourTest.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,8 @@ public function testValue()
3434
$this->assertNotEquals($newTitle, $page->slides->get("id=$slideId")->title);
3535
$this->assertNotEquals($newSelected, $page->slides->get("id=$slideId")->selected);
3636

37-
$query = 'mutation updatePage ($id: ID!, $page: ListAllUpdateInput!, $slideSelector: Selector){
38-
updateListAll(id: $id, page:$page) {
37+
$query = 'mutation updatePage ($page: ListAllUpdateInput!, $slideSelector: Selector){
38+
updateListAll(page:$page) {
3939
slides(s: $slideSelector) {
4040
getTotal,
4141
list{
@@ -47,8 +47,8 @@ public function testValue()
4747
}
4848
}';
4949
$variables = [
50-
"id" => $page->id,
5150
"page" => [
51+
"id" => $page->id,
5252
"slides" => [
5353
"update" => [
5454
[

test/Field/Page/Fieldtype/FieldtypeRepeater/CaseThreeTest.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,8 @@ public function testValue()
3030
$page = Utils::pages()->get("template=list-all, slides.count=3");
3131
$this->assertEquals(3, count($page->slides));
3232

33-
$query = 'mutation updatePage ($id: ID!, $page: ListAllUpdateInput!){
34-
updateListAll(id: $id, page:$page) {
33+
$query = 'mutation updatePage ($page: ListAllUpdateInput!){
34+
updateListAll(page:$page) {
3535
slides {
3636
getTotal,
3737
list{
@@ -41,8 +41,8 @@ public function testValue()
4141
}
4242
}';
4343
$variables = [
44-
"id" => $page->id,
4544
"page" => [
45+
"id" => $page->id,
4646
"slides" => [
4747
"remove" => [5754]
4848
]

test/Permissions/Editor/Update/AllowedTest.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,17 +38,17 @@ public static function getSettings()
3838
public function testPermission() {
3939
$skyscraper = Utils::pages()->get("template=skyscraper, sort=random");
4040
$newTitle = 'New Title for Skyscraper';
41-
$query = 'mutation movePage($id: ID!, $page: SkyscraperUpdateInput!){
42-
updateSkyscraper(id: $id, page: $page) {
41+
$query = 'mutation movePage($page: SkyscraperUpdateInput!){
42+
updateSkyscraper(page: $page) {
4343
id
4444
title
4545
}
4646
}';
4747

4848

4949
$variables = [
50-
'id' => $skyscraper->id,
5150
'page' => [
51+
'id' => $skyscraper->id,
5252
'title' => $newTitle,
5353
]
5454
];

test/Permissions/Editor/Update/NotAllowed/Move/NameConflictTest.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -68,16 +68,16 @@ public function testPermission() {
6868
$skyscraper->of(true);
6969
$skyscraper->name = $futureSibling->name; // <-- name is the same as future sibling
7070
$skyscraper->save();
71-
$query = 'mutation movePage($id: ID!, $page: SkyscraperUpdateInput!){
72-
updateSkyscraper(id: $id, page: $page) {
71+
$query = 'mutation movePage($page: SkyscraperUpdateInput!){
72+
updateSkyscraper(page: $page) {
7373
parentID
7474
}
7575
}';
7676

7777

7878
$variables = [
79-
'id' => $skyscraper->id,
8079
'page' => [
80+
'id' => $skyscraper->id,
8181
'parent' => $newParent->id,
8282
]
8383
];

0 commit comments

Comments
 (0)