Untitled
unknown
dart
a year ago
2.1 kB
0
Indexable
Never
Estou adaptando as funções do curso para um projeto pessoal. import 'dart:convert'; import 'dart:typed_data'; import 'package:get/get.dart'; import 'package:t2painel/app/data/models/image_model.dart'; import 'package:t2painel/app/data/models/produto.dart'; import 'package:image_picker/image_picker.dart'; import '../../functions/image_validator.dart'; import 'repository.dart'; class PhotosController extends GetxController { final PhotosRepository repository; int id = int.parse(Get.parameters['id']!); PhotosController(this.repository); final ImagePicker _picker = ImagePicker(); final produto = Rxn<ProdutoModel>(); List<ImageModel> images = RxList<ImageModel>.empty(); final loading = true.obs; XFile? image; void sendImage() async { image = await _picker.pickImage(source: ImageSource.gallery); if (validate(image!.name)) { Uint8List imagebytes = await image!.readAsBytes(); String base64string = base64.encode(imagebytes); ImageModel model = ImageModel(imagem: base64string, path: ' '); await repository.postImage(id, model).then((data) { fetchImages(); }, onError: (error) { print(error); }); } else { Get.defaultDialog( title: "Formato incorreto", middleText: "Selecione imagens do formato 'jpeg'."); } } Future<void> fetchImages() async { await repository.getImagemLista(id).then((data) { images.assignAll(data); }, onError: (error) { print(error); }); } Future<void> delete(String path) async { await repository.deleteImage(path).then((data) { fetchImages(); Get.defaultPopGesture; Get.snackbar("Ok.", "Imagem deletada com sucesso!"); }, onError: (error) { print(error); }); } Future<void> fetchProuct() async { await repository.getProduto(id).then((data) { produto.value = data; }, onError: (error) {}); } @override void onInit() { loading(true); fetchProuct(); fetchImages(); loading(false); super.onInit(); } }