Files
hartmann-foto_documentation/hartmann-foto-documentation-frontend/lib/controller/questionnaire_customer_controller.dart
2026-02-19 11:04:02 +01:00

43 lines
1.5 KiB
Dart

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