getNetworkActivityFilteredRaw method
Future<Query$GetNetworkActivityFiltered$transfers?>
getNetworkActivityFilteredRaw({
- int number = 20,
- String? cursor,
- required Input$TransferFilter whereFilter,
Raw GraphQL method for server-side filtered network activity
Implementation
Future<Query$GetNetworkActivityFiltered$transfers?>
getNetworkActivityFilteredRaw({
int number = 20,
String? cursor,
required Input$TransferFilter whereFilter,
}) async {
final variables = Variables$Query$GetNetworkActivityFiltered(
first: number,
after: cursor,
filter: whereFilter,
);
final options = QueryOptions(
document: documentNodeQueryGetNetworkActivityFiltered,
variables: variables.toJson(),
fetchPolicy: FetchPolicy.networkOnly,
);
try {
final result = await query(options);
if (result.hasException) {
SquidClientManager.checkAndHandleSchemaError(result.exception);
log.e(
'Failed to get filtered network activity on ${Networks.squidEndpoint}: ${result.exception.toString()}',
);
return null;
}
if (result.data == null) {
return null;
}
// Handle empty results where startCursor/endCursor are null (GraphQL type issue)
final transfers = result.data!['transfers'] as Map<String, dynamic>?;
final edges = transfers?['edges'] as List<dynamic>? ?? [];
if (edges.isEmpty) {
// Create empty response manually to avoid null cursor type casting issues
return Query$GetNetworkActivityFiltered$transfers(
edges: [],
pageInfo: Query$GetNetworkActivityFiltered$transfers$pageInfo(
startCursor: '',
endCursor: '',
hasNextPage: false,
),
);
}
try {
final parsedResult = Query$GetNetworkActivityFiltered.fromJson(
result.data!,
);
return parsedResult.transfers;
} catch (parseError) {
rethrow;
}
} catch (e) {
log.e('Failed to get filtered network activity on ${Networks.squidEndpoint}: $e');
return null;
}
}