...
First we’ll create the directory for the query resolver by creating the following directory:
/server/local/todo/classes/webapi/resolver/querymutation
Now let’s create the query mutation resolver class,
itemsupdate_item.php
in the directory we just created:Code Block language php <?php namespace local_todo\webapi\resolver\mutation; use core\webapi\execution_context; use core\webapi\mutation_resolver; use local_todo\entity\item; class update_item extends mutation_resolver { public static function resolve(array $args, execution_context $ec) { $item_id = $args['item_reference']['id'] ?? null; $new_title = $args['input']['title'] ?? null; $item = new item($item_id); $item->title = $new_title; return ['item' => $item]; } }
In this file we’ve defined the mutation resolver and we’re using the ORM entity of
local_todo
to update and return the item.Now we create the type resolver directory
/server/local/todo/classes/webapi/resolver/type/
and the type resolver for itemitem.php
in the directory:Code Block language php <?php namespace local_todo\webapi\resolver\type; use core\webapi\execution_context; use core\webapi\type_resolver; class item extends type_resolver { /** * @param string $field - The field being requested * @param $source - In the case, source will be our `item` entity class as it's what's returned from the query resolver * @param array $args * @param execution_context $ec * @return mixed|void */ public static function resolve(string $field, $source, array $args, execution_context $ec) { return $source->$field; } }
...