import 'package:shared_preferences/shared_preferences.dart';
import 'api.dart';


class InvenTreeUserPreferences {

  static const String _SERVER = 'server';
  static const String _USERNAME = 'username';
  static const String _PASSWORD = 'password';

  // Ensure we only ever create a single instance of the preferences class
  static final InvenTreeUserPreferences _api = new InvenTreeUserPreferences._internal();

  factory InvenTreeUserPreferences() {
    return _api;
  }

  InvenTreeUserPreferences._internal();

  // Load saved login details, and attempt connection
  void loadLoginDetails() async {

    print("Loading login details");

    SharedPreferences prefs = await SharedPreferences.getInstance();

    var server = prefs.getString(_SERVER) ?? '';
    var username = prefs.getString(_USERNAME) ?? '';
    var password = prefs.getString(_PASSWORD) ?? '';

    await InvenTreeAPI().connectToServer(server, username, password);
  }

  void saveLoginDetails(String server, String username, String password) async {

    SharedPreferences prefs = await SharedPreferences.getInstance();

    await prefs.setString(_SERVER, server);
    await prefs.setString(_USERNAME, username);
    await prefs.setString(_PASSWORD, password);

    // Reconnect the API
    await InvenTreeAPI().connectToServer(server, username, password);
  }
}