devLogin method

Future<void> devLogin({
  1. required String endpoint,
  2. required String user,
  3. required String password,
})

Use the PowerSync dev API to log in.

Implementation

Future<void> devLogin(
    {required String endpoint,
    required String user,
    required String password}) async {
  final uri = Uri.parse(endpoint).resolve('dev/auth.json');
  final res = await http.post(uri,
      headers: {'Content-Type': 'application/json'},
      body: jsonEncode({'user': user, 'password': password}));

  if (res.statusCode == 200) {
    var parsed = jsonDecode(res.body);
    var data = parsed['data'] as Map<String, dynamic>;

    storeDevCredentials(DevCredentials(
        endpoint: endpoint,
        token: data['token'] as String?,
        userId: data['user_id'] as String?));
  } else {
    throw http.ClientException(res.reasonPhrase ?? 'Request failed', uri);
  }
}