Skip to content

DEMO Todo app showing usage of AWS and Amplify in Flutter

Notifications You must be signed in to change notification settings

imranspahic/amplify_demo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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 = [];

About

DEMO Todo app showing usage of AWS and Amplify in Flutter

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published