51 lines
1.7 KiB
Dart
51 lines
1.7 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});
|
|
|
|
Future<List<int>> exportAll();
|
|
}
|
|
|
|
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);
|
|
}
|
|
|
|
@override
|
|
Future<List<int>> exportAll() {
|
|
String uriStr = '${uriUtils.getBaseUrl()}$path/exportall';
|
|
return runGetBytesWithAuth(uriStr);
|
|
}
|
|
}
|