Skip to content

Latest commit

 

History

History
104 lines (92 loc) · 2.05 KB

README.md

File metadata and controls

104 lines (92 loc) · 2.05 KB

Features

Authentication

1. Sign in

    Amplify.Auth.signIn(username: email, password: password);

2. Sign up

    Amplify.Auth.signUp(
          username: email,
          password: password,
          options: CognitoSignUpOptions(userAttributes: userAttributes))

3. Sending confirmation code

    Amplify.Auth.confirmSignUp(
          username: email, confirmationCode: code)

4. Logout

    Amplify.Auth.signOut()

5. Check user session

    Amplify.Auth.fetchAuthSession()

Returns AuthSession. If user is signed in we can also get current user

     if (authSession.isSignedIn)
        authNotifier.currentUser = await Amplify.Auth.getCurrentUser();

Create TODO

  final String createToDoDocument = '''mutation MyMutation {
  createTodo(input: {description: "$todoDescription", name: "$todoName", userID: "${userNotifier.currentUser?.userId}"}) {
    name
    userID
    id
    description
  }
}
''';

Delete TODO

  String deleteToDoDocument = '''mutation MyMutation {
  deleteTodo(input: {id: "$todoID", userID: "${authNotifier.currentUser?.userId}"}) {
    description
    name
    id
    userID
  }
}
 ''';

Fetch TODO

  String fetchingQuery = '''query MyQuery {
  listTodos(filter: {userID: {eq: "${authNotifier.currentUser?.userId}"}}) {
    items {
      description
      id
      name
      userID
    }
  }
}
''';

Subscription

Example subscription will trigger each time we create new todo item:

  String onCreateSubscription = '''subscription MySubscription {
  onCreateTodo {
    id
    description
    name
    userID
  }
} ''';

Registering subscription based on graphql document:

Amplify.API.subscribe(
          request: GraphQLRequest<String>(document: onCreateSubscription),

Model

TODO class is auto-generated by amplify based on defined graphql scheme on amplify console. This model is then used in TodoNotifier for storing list of all todo items

 List<Todo> todos = [];