Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- mixin LoginLogic on Model {
- Map<String, dynamic> authData;
- final UtilityApi _api = UtilityApi();
- Future<dynamic> _makeRequest(
- {String method,
- String schoolCode,
- String username,
- String password,
- DateTime date}) async {
- if (date == null) date = DateTime.now();
- final headers = {
- 'x-key-app': _api.apiKey,
- 'x-version': _api.version,
- 'user-agent': _api.userAgent,
- 'x-cod-min': schoolCode ?? _api.schoolCode,
- };
- if (method != 'login') {
- headers.addAll({
- 'x-auth-token': _api.token,
- 'x-prg-alunno': _api.prgAlunno,
- 'x-prg-scuola': _api.prgScuola,
- 'x-prg-scheda': _api.prgScheda
- });
- } else {
- headers.addAll({'x-user-id': username, 'x-pwd': password});
- }
- http.Response response = await http.get(
- Uri(
- scheme: _api.apiUrl[0],
- host: _api.apiUrl[1],
- path: _api.apiUrl[2] + method,
- queryParameters: {
- "_dc": date.millisecondsSinceEpoch.toString(),
- "datGiorno":
- "${date.year}-${date.month.toString().padLeft(2, '0')}-${date.day.toString().padLeft(2, '0')}"
- },
- ),
- headers: headers);
- if (response.statusCode != 200) {
- throw new Exception(
- "$method failed\n${response.request}\n${response.statusCode} : ${response.body}");
- }
- final decoded = jsonDecode(response.body);
- return decoded;
- }
- Future _initClient({String schoolCode, String token}) async {
- assert(schoolCode != null && token != null);
- this._api.schoolCode = schoolCode;
- this._api.token = token;
- var response = await _makeRequest(method: "schede");
- print(response[0]);
- //school = new School.fromJson(response[0]);
- //student = new Student.fromJson(response[0]);
- //_api.prgScuola = school.schoolId.toString();
- //_api.prgAlunno = student.studentId.toString();
- }
- Future<String> login(
- String email, String schoolCode, String username, String password) async {
- authData = {
- 'email': email,
- 'schoolCode': schoolCode,
- 'username': username,
- 'password': password,
- };
- var jResponse = await _makeRequest(
- method: "login",
- schoolCode: authData['schoolCode'],
- username: authData['username'],
- password: authData['password']);
- assert(jResponse["token"] != null, 'Token is null');
- _api.schoolCode = authData['schoolCode'];
- _api.token = jResponse["token"];
- _storeValues(authData, _api.token);
- await _initClient(schoolCode: authData['schoolCode'], token: _api.token);
- print(_api.token);
- notifyListeners();
- return _api.token;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement