import 'dart:convert'; import 'package:ambito/src/domain/entity/entities.dart'; import 'package:ambito/src/packages/ambito_api/restclient.dart'; import 'package:ambito/src/packages/ambito_db/base_db.dart'; import '../../../main.dart'; Map tables = { 'massnahmen': 328253, 'massnahmenkombination': 328217, 'organismen': 328255, 'foerderprogramme': 328256, 'factsheet': 328273, 'standortansprueche': 328188, 'referenzumsetzung': 328465, 'betriebsverzeichnis': 328472, 'erfahrungsbericht': 330802, 'genehmigungspflicht': 330806, 'dienstleister': 330824, 'ansprechperson': 330832, 'material': 330836, 'quellen': 334231, 'baumarten': 342622, 'aenderungfactsheet': 330946, }; class BaseApi { Future getContent(String table) async { int tableId = tables[table] ?? 0; if (tableId > 0) { var response = await RestClient().get('$tableId/?user_field_names=true&size=200'); if (response.statusCode == 200) { var json = jsonDecode(utf8.decode(response.body.runes.toList())); switch (table) { case 'baumarten': for (var baumart in json['results']) { BaseDB.put(Baumarten.fromJson(baumart)); isar.write((isar) { isar.baumartens.put(Baumarten.fromJson(baumart)); }); } break; case 'massnahmen': for (var massnahme in json['results']) { BaseDB.put(Massnahme.fromJson(massnahme)); isar.write((isar) { isar.massnahmes.put(Massnahme.fromJson(massnahme)); }); } break; } return true; } return false; } return false; } }