import 'package:fotodocumentation/controller/base_controller.dart'; import 'package:fotodocumentation/dto/questionnaire_customer_dto.dart'; abstract interface class QuestionnaireCustomerController { Future> getAll(String query, String startsWith); Future get({required int id}); Future> export({required int customerId, int? questionnaireId}); } class QuestionnaireCustomerControllerImpl extends BaseController implements QuestionnaireCustomerController { final String path = "questionnairecustomer"; @override Future> getAll(String query, String startsWith) async { String uriStr = '${uriUtils.getBaseUrl()}$path?query=$query&startsWith=$startsWith'; return runGetListWithAuth(uriStr, (p0) { List retVal = []; for (var elem in p0) { var entity = QuestionnaireCustomerListDto.fromJson(elem); retVal.add(entity); } return retVal; }); } @override Future get({required int id}) { String uriStr = '${uriUtils.getBaseUrl()}$path/$id'; return runGetWithAuth(uriStr, (json) => QuestionnaireCustomerDto.fromJson(json)); } @override Future> export({required int customerId, int? questionnaireId}) { String uriStr = '${uriUtils.getBaseUrl()}$path/export/$customerId'; if (questionnaireId != null) { uriStr += '?questionnaire=$questionnaireId'; } return runGetBytesWithAuth(uriStr); } }