Advanced TypeScript Programming Projects by Peter O'Hanlon

Advanced TypeScript Programming Projects by Peter O'Hanlon

Author:Peter O'Hanlon
Language: eng
Format: epub
Publisher: Packt Publishing
Published: 2019-07-26T05:26:49+00:00


The final mutation that we are interested in is the one that sets the Completed flag to true. This method is largely a combination of the Remove and Update methods in that it follows the same logic to identify a record and update it. However, like the Remove method, it only needs the Id as the input argument. As we only intend to update the Completed field, that is the only field that we are going to touch on in this method:

@Mutation(() => Boolean!)

async Complete(@Arg("Id") id: string) : Promise<boolean> {

const item: TodoItem = await Prefill.Instance.Items.find(x => x.Id === id);

if (!item) return false;

item.Completed = true;

await this.dataAccess.Update(item.Id, this.CreateTodoSchema(item));

return true;

}

We could have chosen to reuse the Update method and set Completed to true from our client code, but that would have used a more complex call to achieve a much simpler end. By using a separate method, we are ensuring that we have code that does one thing and one thing only. This keeps us to the principle of single responsibility that we are interested in.

With our resolver and schemas in place, we can now turn our attention to adding the code to actually serve up our GraphQL server.



Download



Copyright Disclaimer:
This site does not store any files on its server. We only index and link to content provided by other sites. Please contact the content providers to delete copyright contents if any and email us, we'll remove relevant links or contents immediately.