import 'dart:convert'; import 'package:crypto/crypto.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:http/http.dart' as http; import 'package:gs_kaigo/data/login_model.dart'; import 'constant.dart'; import 'data/schedules_model.dart'; StateProvider<String> uidProvider = StateProvider((ref) => ''); StateProvider<String> passwordProvider = StateProvider((ref) => ''); AutoDisposeFutureProviderFamily<ScheduleListModel, LoginModel> apiFamilyProvider = FutureProvider.autoDispose .family<ScheduleListModel, LoginModel>((ref, _loginModel) async { if (_loginModel.uid.length != 10) { throw Exception("uid must be 10 chars"); } if (_loginModel.password.length != 10) { throw Exception("password must be 10 chars"); } final apiUri = Uri.parse(loginUrl); final body = {'uid': _loginModel.uid, 'password': _loginModel.password}; http.Response response = await http.post(apiUri,body: body); if (response.statusCode != 200) { throw Exception('No user uid: $_loginModel.uid'); } var jsonData = json.decode(response.body); return ScheduleListModel.fromJson(jsonData); });