fairu_sdk_dart 0.1.0
fairu_sdk_dart: ^0.1.0 copied to clipboard
Official Dart/Flutter SDK for the Fairu Digital Asset Management API. Provides type-safe GraphQL queries, mutations, uploads, and image transformations.
example/fairu_sdk_dart_example.dart
import 'package:fairu_sdk_dart/fairu_sdk_dart.dart';
void main() async {
// Initialize the SDK with your API token
final fairu = FairuSdk(
config: FairuClientConfig(
token: 'your-api-token', // Replace with your actual token
),
);
// Example 1: Health Check
print('=== Health Check ===');
final health = await fairu.tenant.healthCheck();
print('API Version: ${health?['version']}');
print('Healthy: ${health?['healthy']}');
// Example 2: List Assets
print('\n=== List Assets ===');
final assets = await fairu.assets.list(page: 1, perPage: 5);
print('Total assets: ${assets.paginatorInfo.total}');
for (final asset in assets.data) {
print('- ${asset['name']} (${asset['mime']})');
}
// Example 3: Search Assets
print('\n=== Search Assets ===');
final searchResult = await fairu.assets.search(
searchTerm: 'hero',
page: 1,
perPage: 5,
);
print('Found ${searchResult.paginatorInfo.total} results');
// Example 4: FileProxy URL Builder
print('\n=== FileProxy URLs ===');
if (assets.data.isNotEmpty) {
final firstAsset = assets.data.first;
final url = fileProxy(firstAsset['id'], firstAsset['name'])
.width(800)
.height(600)
.quality(85)
.format(ImageFormat.webp)
.build();
print('Optimized URL: $url');
}
// Example 5: List Folders
print('\n=== Root Folder Contents ===');
final folderContent = await fairu.folders.getContent(
page: 1,
perPage: 10,
);
print('Items in root: ${folderContent.paginatorInfo.total}');
for (final item in folderContent.data) {
final isFolder = item['mime'] == null;
print('- ${item['name']} (${isFolder ? 'folder' : 'file'})');
}
// Example 6: Get Tenant Info
print('\n=== Tenant Info ===');
final tenant = await fairu.tenant.get();
print('Tenant: ${tenant?['name']}');
print('AI enabled: ${tenant?['use_ai']}');
print('\n=== Done ===');
}