'use strict'; import React, { Component } from 'react'; var SQLite = require('react-native-sqlite-storage'); var DeviceInfo = require('react-native-device-info'); class AuthService extends Component { constructor(props) { super(props); this.state = { showProgress: false } this.errorCB = this.errorCB.bind(this); this.successCB = this.successCB.bind(this); } errorCB(err) { console.log("Auth Service: error: ", err); this.state.progress.push("Error: " + (err.message || err)); return false; } successCB() { } login(creds, cb){ var db = SQLite.openDatabase({name : "oc.db", location: 'default'}, this.successCB.bind(this), this.errorCB.bind(this)); var sql = 'CREATE TABLE IF NOT EXISTS users (' + 'access_token text NOT NULL,' + 'refresh_token text NOT NULL,' + 'userName text NOT NULL,' + 'userId text NOT NULL,' + 'userMail text NOT NULL,' + 'userSignature text NOT NULL,' + 'userSignatureFormat text NOT NULL,' + 'userCreated text NOT NULL,' + 'userAccess text NOT NULL,' + 'userLogin text NOT NULL,' + 'userStatus text NOT NULL,' + 'userTimezone text NOT NULL,' + 'userLanguage text NOT NULL,' + 'userRoles text NOT NULL,' + 'deviceId text NOT NULL,' + 'deviceName text NOT NULL,' + 'host text NOT NULL,' + 'active text NOT NULL' + ');'; db.executeSql(sql, [], this.successCB.bind(this), this.errorCB.bind(this) ); var LCode = creds.logincode; var codeSplited = LCode.split("://"); var codeSplited2 = codeSplited[1].split("?"); var appName = codeSplited[0]; var serverName = codeSplited2[0]; var splitedVars = codeSplited2[1].split("&"); var access_token = splitedVars[0].split("="); var access_token = access_token[1]; var refresh_token = splitedVars[1].split("="); var refresh_token = refresh_token[1]; var uid = splitedVars[2].split("="); var uid = uid[1]; var uname = splitedVars[3].split("="); var uname = uname[1]; var scheme = splitedVars[4].split("="); var scheme = scheme[1]; var device_id = DeviceInfo.getUniqueID(); var device_name = DeviceInfo.getDeviceName(); var locale = DeviceInfo.getDeviceLocale(); console.log('AuthService: Try to fetch from : ', serverName); console.log('request body: ', JSON.stringify({ uid: uid, refresh_token: refresh_token, token: access_token, device: device_id, device_name: device_name, })); fetch(scheme + '://' + serverName, { method: 'POST', headers: { 'Accept': 'application/json', 'Content-Type': 'application/json', 'language': locale, 'Authorization': 'Bearer ' + access_token, }, body: JSON.stringify({ uid: uid, refresh_token: refresh_token, token: access_token, device: device_id, device_name: device_name, }) }) .then((response)=> { return response; }) .then((response)=> { return response.json(); }) .then((results)=> { console.log(results); if(results['result'] == 1){ console.log('Auth Service: Login was successfull');