login function
Implementation
Future login(
{required String appId,
required String userId,
String? userHash,
String? userName,
String? userEmail}) {
var uri = Uri.parse(loginUrl);
return http
.post(uri,
headers: {'Content-Type': 'application/json'},
body: jsonEncode({
'appId': appId,
'userId': userId,
...(userHash == null ? {} : {'userHash': userHash}),
...(userName == null ? {} : {'name': userName}),
...(userEmail == null ? {} : {'email': userEmail}),
}))
.then(
(response) {
if (response.statusCode >= 200 && response.statusCode < 300) {
return jsonDecode(response.body);
}
var text = response.body;
try {
var body = jsonDecode(text);
var errorMessage =
body is Map &&
body.containsKey('detail') &&
body['detail'] is String
? body['detail']
: jsonEncode(body);
throw Exception("Login failed: $errorMessage");
} catch (err) {}
throw Exception("Login failed: HTTP(${response.statusCode}) $text");
},
);
}