flutter ログインを書いてみる

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);
});
/* -----codeの行番号----- */