signInWithEmail method

Future signInWithEmail(
  1. String email,
  2. String password, {
  3. Map<String, dynamic>? include = const {},
  4. Map<String, dynamic>? query = const {},
})

Implementation

Future<dynamic> signInWithEmail(String email,String password,{Map<String,dynamic>?include=const{},Map<String,dynamic>?query=const{}}) async {
  final prefs = StorageProvider();
  var state = prefs.getString("token_access");
  if(state.isNotEmpty){
    var user = prefs.getObject("user");
    subUser.sink.add(user.isNotEmpty?user:null);
    return state;
  }
  if(dotenv.env['authUserInclude'] != null && (include == null || include.isEmpty)){
    include = Map.from(include ?? {});
    List<String> str = dotenv.env['authUserInclude']!.split(',');
    for (var item in str) { if (item.isNotEmpty) { include[item.trim()] = true; } }
  }
  var option = QueryOption(data:{'email':email,'password':password});
  var path = getQueryPathByScope("users/auth");
  final res = await post(path,option:option,include:include,query:query);
  final accessToken = res['headers']['x-access-token'];
  final refreshToken = res['headers']['x-refresh-token'];
  prefs.setString("token_access",accessToken);
  prefs.setString("token_refresh",refreshToken);
  prefs.setObject("user",res['body']);
  subUser.sink.add(res['body']);
  return res['body'];
}