import 'package:http/http.dart' as http; import 'package:url_launcher/url_launcher.dart'; import '../../global.dart' as global; class App { late String clientSecret; late String clientId; late String id; late String name; late String website; late String redirectUri; App( {required this.clientSecret, required this.clientId, required this.id, required this.name, required this.website, required this.redirectUri}); factory App.fromJson(Map json) { return App( id: json["id"].toString(), name: json["name"].toString(), website: json["website"].toString(), redirectUri: json["redirect_uri"].toString(), clientId: json["client_id"].toString(), clientSecret: json["client_secret"].toString()); } } Future registerApp(String baseurl) async { //String url = baseurl Uri."api/v1/apps"; Uri url = Uri.https(baseurl, "/api/v1/apps"); var response = await http.post(url, headers: global.defaultHeaders, body: { 'client_name': global.name, 'redirect_uris': "ietf:wg:oauth:2.0:oob", 'scopes': "read write", 'website': global.website }); return response; } void openBrowserForAuthCode(String baseurl, App app) { Uri url = Uri.https( baseurl, // ignore: prefer_interpolation_to_compose_strings "/oauth/authorize" + "?client_id=" + app.clientId + "&scope=read+write" + "&redirect_uri=urn:ietf:wg:oauth:2.0:oob" + "&response_type=code"); launchUrl(url); }