Skip to content

Latest commit

 

History

History
426 lines (343 loc) · 77.4 KB

File metadata and controls

426 lines (343 loc) · 77.4 KB

Step 5: Mutation and Optimistic Response

So far we learned how to Query and fetch data from our GraphQL server, and in this step we will modify data using GraphQL Mutations.

The mutation we will add is follow and it will add a GitHub users to own following list.

We will first add it with a regular mutation behavior, and then we will update it to use optimistic response.

Implement Mutation

So our schema already has follow mutation declared, and we just need to implement it and call our GitHub connector:

Step 5.1: Implement Follow mutation

Changed server/src/github-connector.js
@@ -21,6 +21,17 @@
 ┊21┊21┊    return this.dataLoader.load(this.paginate(url, page, perPage));
 ┊22┊22┊  }
 ┊23┊23┊
+┊  ┊24┊  follow( login ) {
+┊  ┊25┊    return this.putToGithub(`/user/following/${login}`);
+┊  ┊26┊  }
+┊  ┊27┊
+┊  ┊28┊  putToGithub( relativeUrl ) {
+┊  ┊29┊    const url = `https://api.github.com${relativeUrl}?access_token=${this.accessToken}`;
+┊  ┊30┊
+┊  ┊31┊    const options = { method: 'PUT', headers: { 'Content-Length': 0 } };
+┊  ┊32┊    return fetch(url, options).then(() => this.dataLoader.clearAll());
+┊  ┊33┊  }
+┊  ┊34┊
 ┊24┊35┊  paginate(url, page, perPage) {
 ┊25┊36┊    let transformed = url.indexOf('?') !== -1 ? url : url + '?';
 ┊26┊37┊
Changed server/src/schema.js
@@ -29,6 +29,12 @@
 ┊29┊29┊      return githubConnector.getUserForLogin(user.login);
 ┊30┊30┊    }
 ┊31┊31┊  },
+┊  ┊32┊  Mutation: {
+┊  ┊33┊    follow(_, { login }, { githubConnector }) {
+┊  ┊34┊      return githubConnector.follow(login)
+┊  ┊35┊        .then(() => githubConnector.getUserForLogin(login))
+┊  ┊36┊    },
+┊  ┊37┊  },
 ┊32┊38┊  User: {
 ┊33┊39┊    following(user, { page, perPage }, { githubConnector }) {
 ┊34┊40┊      return githubConnector.getFollowingForLogin(user.login, page, perPage)

Add Angular Form

We will add a form with a simple <input /> tag for the GitHub username, and a simple button that triggers the actual mutation.

So let's start with adding a new Component for the form:

$ ng g component follow-user-form

And let's add it to the main HTML file:

Step 5.3: Use follow form

Changed client/src/app/app.component.html
@@ -5,5 +5,9 @@
 ┊ 5┊ 5┊  </h1>
 ┊ 6┊ 6┊  <img src="data:image/png;base64,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" />
 ┊ 7┊ 7┊</div>
+┊  ┊ 8┊
+┊  ┊ 9┊<h2>Follow</h2>
+┊  ┊10┊<app-follow-user-form></app-follow-user-form>
+┊  ┊11┊
 ┊ 8┊12┊<h2>Following:</h2>
 ┊ 9┊13┊<app-follow-list></app-follow-list>

Now we are going to use Angular features that related to forms, so we need to add @angular/forms:

$ yarn add @angular/forms

And import it into the NgModule:

Step 5.4: Added @angular/forms and use FormsModule in our NgModule

Changed client/src/app/app.module.ts
@@ -1,5 +1,6 @@
 ┊1┊1┊import { BrowserModule } from '@angular/platform-browser';
 ┊2┊2┊import { NgModule } from '@angular/core';
+┊ ┊3┊import { FormsModule } from '@angular/forms';
 ┊3┊4┊
 ┊4┊5┊import { AppComponent } from './app.component';
 ┊5┊6┊import { FollowListItemComponent } from './follow-list-item/follow-list-item.component';
@@ -17,7 +18,8 @@
 ┊17┊18┊  ],
 ┊18┊19┊  imports: [
 ┊19┊20┊    BrowserModule,
-┊20┊  ┊    ApolloModule.forRoot(provideClient)
+┊  ┊21┊    ApolloModule.forRoot(provideClient),
+┊  ┊22┊    FormsModule,
 ┊21┊23┊  ],
 ┊22┊24┊  providers: [],
 ┊23┊25┊  bootstrap: [AppComponent]

The implementation of the actual form is simple - it's just an <input /> tag with two-way-binding using ngModel of Angular, and a simple button that triggers an action in click:

Step 5.5: Implement ui logic for FollowUserForm

Changed client/src/app/follow-user-form/follow-user-form.component.html
@@ -1,3 +1,5 @@
-┊1┊ ┊<p>
-┊2┊ ┊  follow-user-form works!
-┊3┊ ┊</p>
+┊ ┊1┊<div>
+┊ ┊2┊  <label>GitHub Username: </label>
+┊ ┊3┊  <input [(ngModel)]="usernameToFollow" placeholder="GitHub Username">
+┊ ┊4┊  <button (click)="follow()">Follow</button>
+┊ ┊5┊</div>🚫↵
Changed client/src/app/follow-user-form/follow-user-form.component.ts
@@ -6,10 +6,14 @@
 ┊ 6┊ 6┊  styleUrls: ['./follow-user-form.component.css']
 ┊ 7┊ 7┊})
 ┊ 8┊ 8┊export class FollowUserFormComponent implements OnInit {
+┊  ┊ 9┊  private usernameToFollow: string = '';
 ┊ 9┊10┊
 ┊10┊11┊  constructor() { }
 ┊11┊12┊
 ┊12┊13┊  ngOnInit() {
 ┊13┊14┊  }
 ┊14┊15┊
+┊  ┊16┊  follow() {
+┊  ┊17┊
+┊  ┊18┊  }
 ┊15┊19┊}

Adding GraphQL Mutation to client-side

Now let's create a GraphQL file for our mutation:

Step 5.6: Added Follow mutation

Added client/src/app/graphql/follow.mutation.ts
@@ -0,0 +1,10 @@
+┊  ┊ 1┊import gql from 'graphql-tag';
+┊  ┊ 2┊
+┊  ┊ 3┊export const FollowMutation = gql`
+┊  ┊ 4┊  mutation follow($login: String!) {
+┊  ┊ 5┊    follow(login: $login) {
+┊  ┊ 6┊      id
+┊  ┊ 7┊      name
+┊  ┊ 8┊      login
+┊  ┊ 9┊    }
+┊  ┊10┊  }`;

We are using GraphQL variable, called $login, and we will later fill this variable with the form data.

Next, we need to implement follow() method using Apollo, so let's add it using Angular dependency injection, and use add to trigger our GraphQL mutation:

Step 5.7: Implement follow mutation

Changed client/src/app/follow-user-form/follow-user-form.component.html
@@ -2,4 +2,7 @@
 ┊2┊2┊  <label>GitHub Username: </label>
 ┊3┊3┊  <input [(ngModel)]="usernameToFollow" placeholder="GitHub Username">
 ┊4┊4┊  <button (click)="follow()">Follow</button>
+┊ ┊5┊</div>
+┊ ┊6┊<div>
+┊ ┊7┊  {{ followResultMessage }}
 ┊5┊8┊</div>🚫↵
Changed client/src/app/follow-user-form/follow-user-form.component.ts
@@ -1,4 +1,6 @@
 ┊1┊1┊import { Component, OnInit } from '@angular/core';
+┊ ┊2┊import { Apollo } from 'apollo-angular';
+┊ ┊3┊import { FollowMutation } from '../graphql/follow.mutation';
 ┊2┊4┊
 ┊3┊5┊@Component({
 ┊4┊6┊  selector: 'app-follow-user-form',
@@ -7,13 +9,29 @@
 ┊ 7┊ 9┊})
 ┊ 8┊10┊export class FollowUserFormComponent implements OnInit {
 ┊ 9┊11┊  private usernameToFollow: string = '';
+┊  ┊12┊  private followResultMessage: string = '';
 ┊10┊13┊
-┊11┊  ┊  constructor() { }
+┊  ┊14┊  constructor(private apollo: Apollo) {
+┊  ┊15┊  }
 ┊12┊16┊
 ┊13┊17┊  ngOnInit() {
 ┊14┊18┊  }
 ┊15┊19┊
 ┊16┊20┊  follow() {
+┊  ┊21┊    if (this.usernameToFollow === '') {
+┊  ┊22┊      return;
+┊  ┊23┊    }
+┊  ┊24┊
+┊  ┊25┊    this.apollo.mutate<any>({
+┊  ┊26┊      mutation: FollowMutation,
+┊  ┊27┊      variables: {
+┊  ┊28┊        login: this.usernameToFollow,
+┊  ┊29┊      },
+┊  ┊30┊    }).subscribe(({ data: { follow } }) => {
+┊  ┊31┊      const { name, login } = follow;
 ┊17┊32┊
+┊  ┊33┊      this.followResultMessage = `You are now following ${login}${name ? ` (${name})` : ''}!`;
+┊  ┊34┊      this.usernameToFollow = '';
+┊  ┊35┊    });
 ┊18┊36┊  }
 ┊19┊37┊}

We also created a class variable called followResultMessage and display it - this will be our temporary feedback for the action's success.

Optimistic Response

At the moment, the user's feedback after adding sending the form is just a message that says that the user is now being followed by you.

We can improve this behavior by adding optimistic response.

Optimistic response is our way to predict the result of the server, and reflect it to the client immediately, and later replace it with the actual response from the server.

This is a powerful feature that allows you to create good UI behavior and great experience.

So our goal is to replace the simple "success" message, and add the new followed user into the following list.

Apollo-client allows you to add optimisticResponse object to your Mutation definition, and we also need implement updateQueries.

updateQueries is a mechanism that allows the developer to "patch" the Apollo-client cache, and update specific GraphQL requests with data - causing every Component that use these Queries to update.

This is how we implemented updateQueries and optimisticResponse in our project:

Step 5.8: Added optimistic response

Changed client/src/app/follow-user-form/follow-user-form.component.html
@@ -2,7 +2,4 @@
 ┊2┊2┊  <label>GitHub Username: </label>
 ┊3┊3┊  <input [(ngModel)]="usernameToFollow" placeholder="GitHub Username">
 ┊4┊4┊  <button (click)="follow()">Follow</button>
-┊5┊ ┊</div>
-┊6┊ ┊<div>
-┊7┊ ┊  {{ followResultMessage }}
 ┊8┊5┊</div>🚫↵
Changed client/src/app/follow-user-form/follow-user-form.component.ts
@@ -1,5 +1,6 @@
 ┊1┊1┊import { Component, OnInit } from '@angular/core';
 ┊2┊2┊import { Apollo } from 'apollo-angular';
+┊ ┊3┊import update from 'immutability-helper';
 ┊3┊4┊import { FollowMutation } from '../graphql/follow.mutation';
 ┊4┊5┊
 ┊5┊6┊@Component({
@@ -9,7 +10,6 @@
 ┊ 9┊10┊})
 ┊10┊11┊export class FollowUserFormComponent implements OnInit {
 ┊11┊12┊  private usernameToFollow: string = '';
-┊12┊  ┊  private followResultMessage: string = '';
 ┊13┊13┊
 ┊14┊14┊  constructor(private apollo: Apollo) {
 ┊15┊15┊  }
@@ -27,10 +27,29 @@
 ┊27┊27┊      variables: {
 ┊28┊28┊        login: this.usernameToFollow,
 ┊29┊29┊      },
-┊30┊  ┊    }).subscribe(({ data: { follow } }) => {
-┊31┊  ┊      const { name, login } = follow;
+┊  ┊30┊      optimisticResponse: {
+┊  ┊31┊        __typename: 'Mutation',
+┊  ┊32┊        follow: {
+┊  ┊33┊          __typename: 'User',
+┊  ┊34┊          id: '',
+┊  ┊35┊          name: '',
+┊  ┊36┊          login: this.usernameToFollow,
+┊  ┊37┊        },
+┊  ┊38┊      },
+┊  ┊39┊      updateQueries: {
+┊  ┊40┊        Me: (prev, { mutationResult }: { mutationResult: any }) => {
+┊  ┊41┊          const result = mutationResult.data.follow;
 ┊32┊42┊
-┊33┊  ┊      this.followResultMessage = `You are now following ${login}${name ? ` (${name})` : ''}!`;
+┊  ┊43┊          return update(prev, {
+┊  ┊44┊            me: {
+┊  ┊45┊              following: {
+┊  ┊46┊                $push: [result]
+┊  ┊47┊              },
+┊  ┊48┊            },
+┊  ┊49┊          });
+┊  ┊50┊        },
+┊  ┊51┊      }
+┊  ┊52┊    }).subscribe(() => {
 ┊34┊53┊      this.usernameToFollow = '';
 ┊35┊54┊    });
 ┊36┊55┊  }

The optimisticResponse object must match and specify the exact GraphQL type that returns from the server requests, in a special field called __typename - this is how GraphQL identify each object.

So in this case, we are returning a Mutation type that contains a fields called follow (this is the mutation itself), that contains a User type with the fields. We don't have all the fields to create a full UI prediction - but we do have the login - to let's use, and let's add name as empty string.

So we know that object returned from the server, we just need to patch the cache data.

The implementation of updateQueries is an Object, there the key is the GraphQL operation name of the Query we want to patch.

The GraphQL operation name is the name that comes after the word query in you Query definition, so in this case we want to patch Me Query, because this is where the following array comes from:

query Me { /// <--- This is the GraphQL operation name
    me {
        id
        following {
            ...
        }
    }
}

Next, the callback of updateQueries will get the current cache state, and the mutation result. This callback actually called twice now - the first time for our optimistic response, and the for actual mutation result.

We take the current state, and patch it using a tool called update from the package immutability-helper, so we are taking the result object of the mutation, and $push it into the existing array of following users.

Don't forget to add immutability-helper by running:

$ yarn add immutability-helper

Next - let's do some minor UI change and display the GitHub login name instead of the GitHub name, when it's not available (because during the time between the optimistic response and the server response, we don't know the name of the user):

Step 5.10: Display login name when name is not available

Changed client/src/app/follow-list-item/follow-list-item.component.html
@@ -1,3 +1,3 @@
 ┊1┊1┊<li class="follow-list-item">
-┊2┊ ┊  {{ user.name }}
+┊ ┊2┊  {{ user.name && user.name !== '' ? user.name : user.login }}
 ┊3┊3┊</li>🚫↵

Let's add another small change to the result handler - and check if the user exists in the list before adding it, so we won't have duplicates:

Step 5.11: Don't add a users that already exists in the list

Changed client/src/app/follow-user-form/follow-user-form.component.ts
@@ -37,9 +37,13 @@
 ┊37┊37┊        },
 ┊38┊38┊      },
 ┊39┊39┊      updateQueries: {
-┊40┊  ┊        Me: (prev, { mutationResult }: { mutationResult: any }) => {
+┊  ┊40┊        Me: (prev: any, { mutationResult }: { mutationResult: any }) => {
 ┊41┊41┊          const result = mutationResult.data.follow;
 ┊42┊42┊
+┊  ┊43┊          if (prev.me.following && prev.me.following.find(followingUser => followingUser.login === result.login)) {
+┊  ┊44┊            return prev;
+┊  ┊45┊          }
+┊  ┊46┊
 ┊43┊47┊          return update(prev, {
 ┊44┊48┊            me: {
 ┊45┊49┊              following: {
< Previous Step Next Step >