tvf_flutter_graphql 1.1.2
tvf_flutter_graphql: ^1.1.2 copied to clipboard
GraphQL Query Examples Reference for Mobile App (Flutter/Dart). This is a reference package only - DO NOT install. Browse source code to copy GraphQL query strings for mobile endpoints.
TVF Flutter GraphQL Examples Reference #
⚠️ This is a REFERENCE package only - DO NOT install it in your app.
This package contains GraphQL query and mutation examples for mobile app endpoints. Browse the source code to copy the query/mutation strings and use them directly in your app.
📖 How to Use #
-
Navigate to the package source code:
- Go to
packages/flutter-schema/lib/src/queries/mobile_queries.dart
- Go to
-
Copy the query/mutation string:
// Example from MobileQueries.getUser const getUserQuery = ''' query GetUser($id: ID!) { getUser(id: $id) { id email devices { items { id deviceName } } } } '''; -
Use directly in your Flutter app:
import 'package:amplify_flutter/amplify_flutter.dart'; final result = await Amplify.API.query( request: GraphQLRequest<String>( document: getUserQuery, variables: {'id': userId}, ), ).response; if (!result.hasErrors) { final user = result.data?['getUser']; print('User: ${user?['email']}'); }
📚 Available Mobile Endpoints #
1. Get User (with nested devices) #
Source: lib/src/queries/mobile_queries.dart → MobileQueries.getUser
Query:
query GetUser($id: ID!) {
getUser(id: $id) {
id
userId
username
email
phoneNumber
fullName
role
status
lastLogin
notificationPreferences
appSettings
createdAt
updatedAt
devices {
items {
id
deviceId
deviceName
deviceType
location
status
firmwareVersion
latestFirmwareVersion
hardwareVersion
wifiConnected
lastSeen
createdAt
updatedAt
}
nextToken
}
}
}
Flutter Example:
const getUserQuery = MobileQueries.getUser;
final result = await Amplify.API.query(
request: GraphQLRequest<String>(
document: getUserQuery,
variables: {'id': userId},
),
).response;
if (!result.hasErrors) {
final user = result.data?['getUser'];
final devices = user?['devices']?['items'] as List?;
print('User: ${user?['email']}');
print('Devices: ${devices?.length}');
for (final device in devices ?? []) {
print('Device: ${device['deviceName']} - ${device['status']}');
}
}
2. Get App Settings #
Source: lib/src/queries/mobile_queries.dart → MobileQueries.getAppSettings
Query:
query GetAppSettings($id: ID!) {
getUser(id: $id) {
id
appSettings
}
}
Flutter Example:
const getAppSettingsQuery = MobileQueries.getAppSettings;
final result = await Amplify.API.query(
request: GraphQLRequest<String>(
document: getAppSettingsQuery,
variables: {'id': userId},
),
).response;
if (!result.hasErrors) {
final user = result.data?['getUser'];
final appSettings = user?['appSettings'] as Map<String, dynamic>?;
if (appSettings != null) {
print('Theme: ${appSettings['theme']}');
print('Language: ${appSettings['language']}');
// Access other app settings
}
}
3. Get Alerts #
Source: lib/src/queries/mobile_queries.dart → MobileQueries.getAlerts
Query:
query GetAlerts($userId: ID!, $limit: Int, $nextToken: String) {
alertsByUser(userId: $userId, limit: $limit, nextToken: $nextToken, sortDirection: DESC) {
items {
id
alertId
alertType
title
message
category
icon
priority
severity
status
thresholdValue
currentValue
sentAt
readAt
dismissedAt
metadata
deviceId
device {
id
deviceId
deviceName
deviceType
}
createdAt
updatedAt
}
nextToken
}
}
Flutter Example:
const getAlertsQuery = MobileQueries.getAlerts;
final result = await Amplify.API.query(
request: GraphQLRequest<String>(
document: getAlertsQuery,
variables: {
'userId': userId,
'limit': 20,
},
),
).response;
if (!result.hasErrors) {
final alerts = result.data?['alertsByUser']?['items'] as List?;
for (final alert in alerts ?? []) {
print('Alert: ${alert['title']}');
print('Priority: ${alert['priority']}');
print('Status: ${alert['status']}');
if (alert['device'] != null) {
print('Device: ${alert['device']['deviceName']}');
}
}
// Pagination
final nextToken = result.data?['alertsByUser']?['nextToken'];
if (nextToken != null) {
// Load next page
final nextResult = await Amplify.API.query(
request: GraphQLRequest<String>(
document: getAlertsQuery,
variables: {
'userId': userId,
'limit': 20,
'nextToken': nextToken,
},
),
).response;
}
}
4. Create Device Token (Mutation) #
Source: lib/src/queries/mobile_queries.dart → MobileQueries.createDeviceToken
Mutation:
mutation CreateDeviceToken($input: CreateDeviceTokenInput!) {
createDeviceToken(input: $input) {
id
tokenId
userId
deviceToken
platform
deviceId
appVersion
isActive
lastUsedAt
createdAt
updatedAt
}
}
Flutter Example:
const createDeviceTokenMutation = MobileQueries.createDeviceToken;
final result = await Amplify.API.mutate(
request: GraphQLRequest<String>(
document: createDeviceTokenMutation,
variables: {
'input': {
'tokenId': 'token_${DateTime.now().millisecondsSinceEpoch}',
'userId': userId,
'deviceToken': fcmToken,
'platform': 'android', // or 'ios'
'deviceId': deviceId, // optional
'appVersion': '1.0.0', // optional
'isActive': true,
},
},
),
).response;
if (!result.hasErrors) {
final deviceToken = result.data?['createDeviceToken'];
print('Device token created: ${deviceToken?['tokenId']}');
} else {
print('Error: ${result.errors}');
}
📁 Package Structure #
lib/
├── src/
│ └── queries/
│ └── mobile_queries.dart # All mobile query/mutation examples
└── tvf_flutter_graphql.dart # Main export (for reference)
⚠️ Important Notes #
- DO NOT install this package in your app
- Browse the source code to find query/mutation examples
- Copy the query/mutation strings directly into your app code
- No dependencies required - just copy the strings
- This package is for reference/documentation purposes only
🔍 Finding Examples #
- All queries/mutations: Check
lib/src/queries/mobile_queries.dart - Each query/mutation has inline documentation with Flutter usage examples
📄 License #
See LICENSE file for details.