get_favoriete_gemeenten.dart 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. // Automatic FlutterFlow imports
  2. import '/backend/schema/structs/index.dart';
  3. import '/flutter_flow/flutter_flow_theme.dart';
  4. import '/flutter_flow/flutter_flow_util.dart';
  5. import 'index.dart'; // Imports other custom actions
  6. import '/flutter_flow/custom_functions.dart'; // Imports custom functions
  7. import 'package:flutter/material.dart';
  8. // Begin custom action code
  9. // DO NOT REMOVE OR MODIFY THE CODE ABOVE!
  10. import '/backend/api_requests/api_calls.dart';
  11. Future<List<GemeenteModelStruct>> getFavorieteGemeenten(
  12. List<String>? favorieteGemeenteIds) async {
  13. final resolved = <GemeenteModelStruct>[];
  14. final ids = favorieteGemeenteIds ?? [];
  15. if (ids.isEmpty) {
  16. return resolved;
  17. }
  18. final provResponse = await ProvinciesCall.call();
  19. if (!provResponse.succeeded) {
  20. return resolved;
  21. }
  22. final provincies =
  23. provResponse.jsonBody is List ? (provResponse.jsonBody as List) : [];
  24. for (final prov in provincies) {
  25. if (prov is! Map) continue;
  26. final provincieId = prov['provincieid']?.toString();
  27. if (provincieId == null || provincieId.isEmpty) continue;
  28. final gemResponse = await GemeentenCall.call(provincieid: provincieId);
  29. if (!gemResponse.succeeded) continue;
  30. final gemeentes =
  31. gemResponse.jsonBody is List ? (gemResponse.jsonBody as List) : [];
  32. for (final g in gemeentes) {
  33. if (g is! Map) continue;
  34. final gid = g['gemeenteid']?.toString();
  35. if (gid != null && ids.contains(gid)) {
  36. final struct = GemeenteModelStruct.maybeFromMap(g);
  37. if (struct != null) {
  38. resolved.add(struct);
  39. }
  40. }
  41. }
  42. }
  43. return resolved;
  44. }