This commit is contained in:
henrydays 2019-03-15 22:07:22 +00:00
parent 6214aea437
commit c476e7bbf5
7 changed files with 342 additions and 437 deletions

View File

@ -81,7 +81,7 @@ class App extends Component {
logged: false,
isModalVisible: false,
state: { text: "" },
username: "QR code",
username: "QR code ou",
failedAttempt: false,
push: 4,
UI_loginScannerActive: false,
@ -105,23 +105,13 @@ class App extends Component {
componentDidMount() {
//this.props.hold();
this.props.loginInternal();
NetInfo.isConnected.addEventListener(
"connectionChange",
this.handleConnectivityChange
);
// this.props.loginInternal();
this.setState({ isModalVisible: false });
//verifica se o utilizador tem token guardado
this.props.checkUser(this.props.userDetails);
this.keyboardDidShowListener = Keyboard.addListener(
"keyboardDidShow",
this._keyboardDidShow
);
this.keyboardDidHideListener = Keyboard.addListener(
"keyboardDidHide",
this._keyboardDidHide
);
this.props.checkUser(this.props.token);
}
componentWillUnmount() {
NetInfo.isConnected.removeEventListener(
@ -135,7 +125,7 @@ class App extends Component {
//faz call
_reset=()=>{
//fecha modal
this.props.resetPassword(this.props.userDetails.token,this.state.resetText),
this.props.resetPassword(this.props.token,this.state.resetText),
this.setState({modalResetPassword:false})
//faz call
}
@ -249,7 +239,7 @@ class App extends Component {
style={styles.input}
placeholder={this.state.username}
onChangeText={searchString => {
this.setState({ searchString });
this.setState({ username:searchString });
}}
maxLength={15}
underlineColorAndroid="transparent"

View File

@ -47,7 +47,7 @@ class Calendar extends React.Component {
componentDidMount() {
this.props.getEvents(this.props.user);
this.props.getSessions(this.props.userDetails.token);
this.props.getSessions(this.props.token);
}
_openDetails = () => {
@ -142,7 +142,7 @@ class Calendar extends React.Component {
}
_refresh=()=>{
this.props.getEvents(this.props.user);
//this.props.getSessions(this.props.userDetails.token);
}
render() {

View File

@ -78,7 +78,7 @@ class Home extends Component {
//console.log(this.props.token);
this.props.getUserInfo(this.props.userDetails.token);
this.props.getUserInfo(this.props.token);
//console.log('logged:'+this.props.logged);
@ -97,7 +97,7 @@ class Home extends Component {
//var navigate = this.props.navigation.navigate
}
_update = () => {
this.props.getUserInfo(this.props.userDetails.token);
this.props.getUserInfo(this.props.token);
};
render() {

View File

@ -91,7 +91,7 @@ class Profile extends Component {
_press=()=>{
this.props.changePassword(
this.props.userDetails.token,
this.props.token,
this.state.oldPass,
this.state.new1,
this.state.new2
@ -163,7 +163,7 @@ class Profile extends Component {
if (formValid) {
console.log("data valid");
this.props.updateUser(this.props.userDetails.token, {
this.props.updateUser(this.props.token, {
Name: this.state.name,
Company: jobs,
LastName: curso,

View File

@ -77,8 +77,8 @@ class choosePath extends React.Component {
};
componentDidMount() {
// this.props.getEvents(this.props.user);
this.props.getAvailableGuestlists(this.props.userDetails.token);
this.props.getSessions(this.props.userDetails.token);
this.props.getAvailableGuestlists(this.props.token);
this.props.getSessions(this.props.token);
this._mount();
//console.log('didMount');
@ -120,10 +120,10 @@ class choosePath extends React.Component {
_s() {
this.props.signSession(this.props.userDetails.token, item[index].Id);
this.props.signSession(this.props.token, item[index].Id);
}
getCareerPaths = () => {
this.props.getAvailableGuestlists(this.props.userDetails.token);
this.props.getAvailableGuestlists(this.props.token);
console.log(this.props.calendar);
};
_keyExtractor = (item, index) => item.id;
@ -265,13 +265,12 @@ class choosePath extends React.Component {
this.props.waitChangeGuest();
this.props.changeGuestList(
this.props.userDetails.token,
this.props.token,
itemValue
);
// this.props.waitChangeGuest();
// this.props.getAvailableSessions(this.props.userDetails.token);
// this.props.waitChangeGuest();
// this.props.getSessionBlocks(this.props.sessions)
@ -328,7 +327,7 @@ class choosePath extends React.Component {
this.props.removeSession(
this.props.user,
this.props.userDetails.token,
this.props.token,
item[index].Id
);
}}
@ -350,7 +349,7 @@ class choosePath extends React.Component {
//this.props.waitChangeGuest()
this.props.signSession(
this.props.user,
this.props.userDetails.token,
this.props.token,
item[index].Id
);
@ -505,7 +504,8 @@ function mapStateToProps(state, props) {
changingGuest: state.apiReducer.changingGuest,
sessions: state.apiReducer.sessions,
Blocks: state.apiReducer.Blocks,
showAlert: state.apiReducer.showAlert
showAlert: state.apiReducer.showAlert,
token: state.apiReducer.token
};
}

View File

@ -35,9 +35,8 @@ import { colors } from "react-native-elements";
const axios = require("axios");
axios.defaults.baseURL = "http://enei2019.uingress.com/internal/api";
axios.defaults.baseURL = "https://tickets.enei.pt/internal/api";
//http://enei2019.uingress.com/internal/api/Attendee/Edit
const map = require("lodash/fp/map").convert({ cap: false });
@ -49,32 +48,118 @@ export function waitLogin() {
};
}
export function changePassword(token, old, new1, new2) {
axios.defaults.headers.common = {
Authorization: `bearer ${token.access_token}`
};
axios.defaults.baseURL = "http://enei2019.uingress.com/internal/api";
var checkAndRefresh = function(token) {
return new Promise(function(resolve, reject) {
//verificar se já expirou a validade do token
if (token == undefined || token.access_token == undefined) {
reject("user logged out");
console.log("fds");
} else if (
Math.round(new Date().getTime() / 1000) >= token.expirationDateToken
) {
console.log("vai renovar");
var obj;
return dispatch => {
if (new1 != new2) {
Alert.alert("ERRO!", "As passords são diferentes...");
} else {
axios
.post("/User/ChangePassword", {
OldPassword: old,
NewPassword: new1
var details = {
refresh_token: token.refresh_token,
grant_type: "refresh_token"
};
var formBody = [];
for (var property in details) {
var encodedKey = encodeURIComponent(property);
var encodedValue = encodeURIComponent(details[property]);
formBody.push(encodedKey + "=" + encodedValue);
}
formBody = formBody.join("&");
fetch("https://tickets.enei.pt/internal/api/token", {
method: "POST",
headers: {
"Content-Type": "application/x-www-form-urlencoded;charset=UTF-8"
},
body: formBody
})
.catch(err => {
console.log(err);
alert("Erro no login!!");
alert("error");
reject("ERRRO");
})
.then(a => {
Alert.alert("Sucesso!", "Password alterada com sucesso")
})
.catch(p => {
Alert.alert("ERRO!", "Erro a alterar a password.\nA palavra original é inválida...\nCaso o erro persista verifica a tua conexão à internet e tenta novamente")
.then(res => res.json())
.then(parsed => {
if (parsed.error == "invalid_grant") {
reject("erro");
} else {
var obj = {
access_token: parsed.access_token,
refresh_token: parsed.refresh_token,
expirationDateToken:
Math.round(new Date().getTime() / 1000) + 3598
};
resolve(obj);
console.log(parsed);
}
});
dispatch({
type: OPEN_MODAL
});
} else {
console.log(
"Tempo restante token: " +
Math.round(
(token.expirationDateToken -
Math.round(new Date().getTime() / 1000)) /
60
) +
" Minutos"
);
resolve(token);
}
});
};
export function changePassword(token, old, new1, new2) {
return dispatch => {
axios.defaults.baseURL = "https://tickets.enei.pt/internal/api";
checkAndRefresh(token)
.then(newToken => {
axios.defaults.headers.common = {
Authorization: `bearer ${newToken.access_token}`
};
if (new1 != new2) {
Alert.alert("ERRO!", "As passords são diferentes...");
} else {
axios
.post("/User/ChangePassword", {
OldPassword: old,
NewPassword: new1
})
.then(a => {
Alert.alert("Sucesso!", "Password alterada com sucesso");
})
.catch(p => {
Alert.alert(
"ERRO!",
"Erro a alterar a password.\nA palavra original é inválida...\nCaso o erro persista verifica a tua conexão à internet e tenta novamente"
);
});
dispatch({
type: OPEN_MODAL
});
}
})
.catch(err => {
Alert.alert(
"Token ERROR!",
"Parace que houve um erro com o teu token... Reinicia a App. Caso o problema se mantenha, volta e instalar"
);
});
};
}
//faz autenticação com API interna
@ -120,29 +205,43 @@ export function closeModal() {
}
export function updateUser(token, user) {
axios.defaults.baseURL = "http://enei2019.uingress.com/internal/api";
axios.defaults.headers.common = {
Authorization: `bearer ${token.access_token}`
};
axios.defaults.baseURL = "https://tickets.enei.pt/internal/api";
return dispatch => {
axios
.post("/Attendee/Edit", user)
.then(a => {
Alert.alert("Sucesso", "As informações pessoais foram guardadas com sucesso.")
console.log(a.data)
dispatch({
type: UPDATE_USER,
user:a.data
});
checkAndRefresh(token)
.then(newToken => {
axios.defaults.headers.common = {
Authorization: `bearer ${newToken.access_token}`
};
axios
.post("/Attendee/Edit", user)
.then(a => {
Alert.alert(
"Sucesso",
"As informações pessoais foram guardadas com sucesso."
);
console.log(a.data);
dispatch({
type: UPDATE_USER,
user: a.data
});
})
.catch(b => {
Alert.alert(
"ERRO!",
"Ocorreu um erro a guardar os dados pessoais."
);
alert(b);
});
})
.catch(b => {
Alert.alert("ERRO!","Ocorreu um erro a guardar os dados pessoais.")
alert(b)
.catch(err => {
Alert.alert(
"Token ERROR!",
"Parace que houve um erro com o teu token... Reinicia a App. Caso o problema se mantenha, volta e instalar"
);
});
};
}
@ -199,17 +298,20 @@ export const connectionState = status => {
};
export function removeSession(user, token, idSession) {
axios.defaults.headers.common = {
Authorization: `bearer ${token.access_token}`
};
var obj = {
var obj = {
IdSession: idSession,
Direction: 0
};
return dispatch => {
//adiciona participante a uma palestra
checkAndRefresh(token)
.then(newToken => {
axios.defaults.headers.common = {
Authorization: `bearer ${newToken.access_token}`
};
axios
.post("/Session/RemoveAttendee", obj)
//se não existir erro na chamada...
@ -273,14 +375,19 @@ export function removeSession(user, token, idSession) {
.catch(b => {
alert("Erro a inscrever na palestra");
});
})
.catch(err => {
Alert.alert(
"Token ERROR!",
"Parace que houve um erro com o teu token... Reinicia a App. Caso o problema se mantenha, volta e instalar"
);
});
};
}
//inscrição em palestra através de ID
export function signSession(user, token, idSession) {
axios.defaults.headers.common = {
Authorization: `bearer ${token.access_token}`
};
var obj = {
IdSession: idSession,
@ -288,6 +395,13 @@ export function signSession(user, token, idSession) {
};
return dispatch => {
checkAndRefresh(token)
.then(newToken => {
axios.defaults.headers.common = {
Authorization: `bearer ${newToken.access_token}`
};
//adiciona participante a uma palestra
axios
.post("/Session/AddAttendee", obj)
@ -318,7 +432,7 @@ export function signSession(user, token, idSession) {
"Sucesso",
"Inscrição na sessão efectuada com sucesso"
);
console.log("aqui1")
console.log("aqui1");
//obter informações pessoais:
axios
.get("/Attendee/Detail")
@ -327,7 +441,7 @@ export function signSession(user, token, idSession) {
alert(error);
})
.then(sucess => {
console.log("aqui2")
console.log("aqui2");
var result = getE(user);
dispatch({
type: SIGN_SESSION,
@ -358,16 +472,28 @@ export function signSession(user, token, idSession) {
.catch(b => {
// alert("Erro a inscrever na palestra");
});
})
.catch(err => {
Alert.alert(
"Token ERROR!",
"Parace que houve um erro com o teu token... Reinicia a App. Caso o problema se mantenha, volta e instalar"
);
});
};
}
export function getSessions(token) {
axios.defaults.headers.common = {
Authorization: `bearer ${token.access_token}`
};
return dispatch => {
axios.defaults.baseURL = "http://enei2019.uingress.com/internal/api";
checkAndRefresh(token)
.then(newToken => {
axios.defaults.headers.common = {
Authorization: `bearer ${newToken.access_token}`
};
axios.defaults.baseURL = "https://tickets.enei.pt/internal/api";
axios.defaults.headers.common = {
Authorization: `bearer ${token.access_token}`
@ -405,15 +531,26 @@ export function getSessions(token) {
alert("Error a obter sessões disponíveis!!");
console.log(error);
});
})
.catch(err => {
Alert.alert(
"Token ERROR!",
"Parace que houve um erro com o teu token... Reinicia a App. Caso o problema se mantenha, volta e instalar"
);
});
};
}
export function getAvailableGuestlists(token) {
axios.defaults.headers.common = {
Authorization: `bearer ${token.access_token}`
};
return dispatch => {
checkAndRefresh(token)
.then(newToken => {
axios.defaults.headers.common = {
Authorization: `bearer ${newToken.access_token}`
};
axios
.get("/Attendee/AvailableGuestlists")
.then(function(response) {
@ -430,6 +567,12 @@ export function getAvailableGuestlists(token) {
})
.then(function() {
// always executed
});})
.catch(err => {
Alert.alert(
"Token ERROR!",
"Parace que houve um erro com o teu token... Reinicia a App. Caso o problema se mantenha, volta e instalar"
);
});
};
}
@ -444,32 +587,30 @@ export function getAvailableGuestlists(token) {
15 - DS
*/
export function changeGuestList(token, guestID) {
//http://enei2019.uingress.com/internal/api/Attendee/ChangeGuestlist/
axios.defaults.headers.common = {
Authorization: `bearer ${token.access_token}`
};
axios.defaults.baseURL = "https://tickets.enei.pt/internal/api";
return dispatch => {
checkAndRefresh(token)
.then(newToken => {
axios.defaults.headers.common = {
Authorization: `bearer ${newToken.access_token}`
};
var full = `/Attendee/ChangeGuestlist/${guestID}`;
axios
.get(full)
.then(function(response) {
axios.defaults.baseURL = "http://enei2019.uingress.com/internal/api";
axios.defaults.headers.common = {
Authorization: `bearer ${token.access_token}`
};
axios
.get("/Attendee/AvailableSessions")
.then(function(response) {
// handle success
//console.log(response);
var cenas = [];
@ -481,14 +622,12 @@ export function changeGuestList(token, guestID) {
)(response.data);
for (let key in result) {
result[key].option = 0;
cenas.push(result[key]);
}
console.log("-.-.-..-.-.-.-.-.-.")
console.log("-.-.-..-.-.-.-.-.-.");
console.log(cenas);
console.log("-.-.-..-.-.-.-.-.-.")
console.log("-.-.-..-.-.-.-.-.-.");
dispatch({
type: CHANGE_GUEST,
sessions: response.data,
@ -511,6 +650,11 @@ export function changeGuestList(token, guestID) {
})
.then(function() {
// always executed
});}).catch(err => {
Alert.alert(
"Token ERROR!",
"Parace que houve um erro com o teu token... Reinicia a App. Caso o problema se mantenha, volta e instalar"
);
});
};
}
@ -539,15 +683,19 @@ export function getSessionBlocks(sessions) {
}
export function getAvailableSessions(token) {
//http://enei2019.uingress.com/internal/api/Attendee/AvailableSessions
axios.defaults.baseURL = "http://enei2019.uingress.com/internal/api";
axios.defaults.headers.common = {
Authorization: `bearer ${token.access_token}`
};
axios.defaults.baseURL = "https://tickets.enei.pt/internal/api";
return dispatch => {
checkAndRefresh(token)
.then(newToken => {
axios.defaults.headers.common = {
Authorization: `bearer ${newToken.access_token}`
};
axios
.get("/Attendee/AvailableSessions")
.then(function(response) {
@ -576,6 +724,12 @@ export function getAvailableSessions(token) {
.catch(function(error) {
alert("Error a obter sessões disponíveis!!");
console.log(error);
});})
.catch(err => {
Alert.alert(
"Token ERROR!",
"Parace que houve um erro com o teu token... Reinicia a App. Caso o problema se mantenha, volta e instalar"
);
});
};
}
@ -690,49 +844,6 @@ export function getEvents(user) {
};
}
const saveToken = async token => {
try {
await AsyncStorage.setItem("refreshToken", token.refreshToken).catch(
a => {}
);
await AsyncStorage.setItem("userToken", token.access_token).catch(a => {});
await AsyncStorage.setItem(
"expirationDateToken",
token.expirationDateToken.toString()
).catch(a => {});
} catch (error) {
// Error retrieving data
console.log(error.message);
}
};
const getToken = async () => {
obj = {};
try {
obj.access_token = (await AsyncStorage.getItem("userToken")) || "none";
obj.expirationDateToken =
(await AsyncStorage.getItem("expirationDateToken")) || "none";
obj.refreshToken = (await AsyncStorage.getItem("refreshToken")) || "none";
} catch (error) {
// Error retrieving data
console.log(error.message);
}
return obj;
};
const deleteToken = async () => {
try {
await AsyncStorage.removeItem("userToken");
await AsyncStorage.removeItem("expirationDateToken");
await AsyncStorage.removeItem("refreshToken");
} catch (error) {
// Error retrieving data
console.log(error.message);
}
};
const renewToken = refresh => {};
export function login(user, pass) {
return dispatch => {
console.log("user: " + user + " password: " + pass);
@ -755,7 +866,7 @@ export function login(user, pass) {
formBody = formBody.join("&");
fetch("http://enei2019.uingress.com/internal/api/token", {
fetch("https://tickets.enei.pt/internal/api/token", {
method: "POST",
headers: {
@ -808,7 +919,7 @@ export function login(user, pass) {
var obj = {
access_token: parsed.access_token,
expirationDateToken: Math.round(new Date().getTime() / 1000) + 3598,
refreshToken: parsed.refresh_token,
refresh_token: parsed.refresh_token,
valid: true
};
@ -840,288 +951,76 @@ export function hold() {
export function getUserInfo(token) {
return dispatch => {
//TODO: verificar validade do token
checkAndRefresh(token)
.then(newToken => {
console.log('Chamada "getUserInfo"');
console.log('Chamada "getUserInfo"');
var obj = {
method: "GET",
headers: {
Authorization: `Bearer ${newToken.access_token}`
}
};
var obj = {
method: "GET",
headers: {
Authorization: `Bearer ${token.access_token}`
}
};
fetch("https://tickets.enei.pt/internal/api/Attendee/Detail", obj)
.then(function(res) {
console.log(res);
let obj = JSON.parse(res._bodyText);
fetch("http://enei2019.uingress.com/internal/api/Attendee/Detail", obj)
.then(function(res) {
console.log(res);
let obj = JSON.parse(res._bodyText);
dispatch({ type: USER_INFO, user: obj, onHold: false, logged: true });
dispatch({
type: USER_INFO,
user: obj,
onHold: false,
logged: true,
token: newToken
});
})
.catch(function(res) {
console.log("erro");
// dispatch({ type: USER_INFO,onHold:false});
alert("Erro a obter a informação pessoal.");
});
})
.catch(function(res) {
console.log("erro");
// dispatch({ type: USER_INFO,onHold:false});
alert("Erro a obter a informação pessoal.");
.catch(err => {
console.log("cenas da vida");
});
};
}
export function logoutUser() {
return dispatch => {
deleteToken()
.then(a => {
console.log("token apagado");
console.log("token apagado");
dispatch({
type: LOGOUT_USER,
loggedIn: false,
tokenData: "error",
token: false
});
};
}
export function checkUser(token) {
return dispatch => {
checkAndRefresh(token)
.catch(err => {
Alert("ERRO a fazer login");
console.log(err);
dispatch({
type: LOGOUT_USER,
loggedIn: false,
tokenData: "error",
token: false
type: CHECK_USER,
logged: true,
onHold: false,
userDetails: u,
token: obj
});
})
.catch(err => {
console.log("errors");
});
};
}
//
function refreshToken() {
refresh = a.refreshToken;
//chamar funçao para renovar
console.log("expirou");
var details = {
grant_type: "refresh_token",
refresh_token: refresh
};
var formBody = [];
for (var property in details) {
var encodedKey = encodeURIComponent(property);
var encodedValue = encodeURIComponent(details[property]);
formBody.push(encodedKey + "=" + encodedValue);
}
formBody = formBody.join("&");
fetch("http://enei2019.uingress.com/internal/api/token", {
method: "POST",
headers: {
"Content-Type": "application/x-www-form-urlencoded;charset=UTF-8"
},
body: formBody
})
.then(res => res.json())
.then(parsed => {
console.log(parsed);
if (parsed.error == "invalid_grant") {
console.log(formBody);
dispatch({ type: CHECK_USER, token: "", logged: false, onHold: false });
} else {
var obj = {
access_token: parsed.access_token,
expirationDateToken: Math.round(new Date().getTime() / 1000) + 3598,
refreshToken: parsed.refresh_token,
valid: true
};
// deleteToken();
saveToken(obj).then(a => {
console.log("Token guardado");
console.log(obj);
dispatch({
type: CHECK_USER,
token: obj,
logged: true,
onHold: false
});
});
}
})
.catch(a => {
console.log("erro na api");
dispatch({ type: CHECK_USER, token: "", logged: false, onHold: false });
});
}
refreshLogin = async (user, pass) => {
console.log("login");
console.log("user: " + user + " password: " + pass);
var details = {
username: user,
password: pass,
grant_type: "password"
};
var formBody = [];
for (var property in details) {
var encodedKey = encodeURIComponent(property);
var encodedValue = encodeURIComponent(details[property]);
formBody.push(encodedKey + "=" + encodedValue);
}
formBody = formBody.join("&");
fetch("http://enei2019.uingress.com/internal/api/token", {
method: "POST",
headers: {
"Content-Type": "application/x-www-form-urlencoded;charset=UTF-8"
},
body: formBody
})
.catch(err => {
console.log(err);
alert("error");
})
.then(res => res.json())
.then(parsed => {
if (
parsed.error_description ==
"Provided username and password is incorrect"
) {
console.error("cenas da vida");
} else {
console.log(parsed);
var obj = {
access_token: parsed.access_token,
expirationDateToken: Math.round(new Date().getTime() / 1000) + 3598,
refreshToken: parsed.refresh_token,
valid: true
};
go();
return obj;
}
});
};
go = t => {
dispatch({
type: CHECK_USER,
logged: true,
onHold: false,
user: { Name: "Henrique" },
token: t
});
};
export function checkUser(userDetails) {
var u = userDetails;
return dispatch => {
//verifica se existe utilizador em memória
if (
userDetails.username != undefined &&
userDetails.username != "" &&
userDetails.password != undefined &&
userDetails.password != ""
) {
//verifica a validade do token
if (
Math.round(new Date().getTime() / 1000) >=
userDetails.token.expirationDateToken
) {
var details = {
username: userDetails.username,
password: userDetails.password,
grant_type: "password"
};
var formBody = [];
for (var property in details) {
var encodedKey = encodeURIComponent(property);
var encodedValue = encodeURIComponent(details[property]);
formBody.push(encodedKey + "=" + encodedValue);
}
formBody = formBody.join("&");
fetch("http://enei2019.uingress.com/internal/api/token", {
method: "POST",
headers: {
"Content-Type": "application/x-www-form-urlencoded;charset=UTF-8"
},
body: formBody
})
.catch(err => {
alert("Erro a validar o utilizador");
})
.then(res => res.json())
.then(parsed => {
if (
parsed.error_description ==
"Provided username and password is incorrect"
) {
alert("Ups, password ou utilizador errada");
} else {
console.log(parsed);
var obj = {
access_token: parsed.access_token,
expirationDateToken:
Math.round(new Date().getTime() / 1000) + 3598,
refreshToken: parsed.refresh_token,
valid: true
};
dispatch({
type: CHECK_USER,
logged: true,
onHold: false,
userDetails: u,
token: obj
});
}
});
} else {
console.log(
"Tempo restante token: " +
Math.round(
(userDetails.token.expirationDateToken -
Math.round(new Date().getTime() / 1000)) /
60
) +
" Minutos"
);
//dispatch home
.then(newToken => {
dispatch({
type: CHECK_USER,
logged: true,
onHold: false,
user: { Name: "Henrique" },
userDetails: u
token: newToken
});
}
}
//utilizador não existe em memória
else {
dispatch({
type: CHECK_USER,
logged: false,
onHold: false,
userDetails: u
});
//dispatch menu de login
}
};
}
}

View File

@ -36,7 +36,8 @@ let apiState = {
password: "",
token: {
expirationDateToken: 0,
access_token: ""
access_token: "",
refresh_token:""
}
},
calendar: {},
@ -61,22 +62,31 @@ const apiReducer = (state = apiState, action) => {
var expirationDateTokenA = 0;
var access_tokenA = "";
var refresh_tokenA= "puta";
if (action.payload.apiReducer.userDetails.token != undefined) {
if (action.payload.apiReducer.token != undefined) {
if (
action.payload.apiReducer.userDetails.token.expirationDateToken !=
action.payload.apiReducer.token.expirationDateToken !=
undefined
) {
expirationDateTokenA =
action.payload.apiReducer.userDetails.token.expirationDateToken;
action.payload.apiReducer.token.expirationDateToken;
}
if (
action.payload.apiReducer.userDetails.token.access_token !=
action.payload.apiReducer.token.access_token !=
undefined
) {
access_tokenA =
action.payload.apiReducer.userDetails.token.access_token;
action.payload.apiReducer.token.access_token;
}
if (
action.payload.apiReducer.token.refresh_token !=
undefined
) {
refresh_tokenA =
action.payload.apiReducer.token.refresh_token;
}
}
@ -88,11 +98,13 @@ const apiReducer = (state = apiState, action) => {
userDetails: {
token: {
expirationDateToken: expirationDateTokenA,
access_token: access_tokenA
access_token: access_tokenA,
refresh_token:refresh_tokenA,
},
username: action.payload.apiReducer.userDetails.username,
password: action.payload.apiReducer.userDetails.password
}
},
token:action.payload.apiReducer.token
};
}
@ -123,19 +135,19 @@ const apiReducer = (state = apiState, action) => {
password: action.userDetails.password
},
loadingLogin: false,
onHold: action.onHold
onHold: action.onHold,
token:action.token
});
return state;
case CHECK_USER:
var u = action.userDetails;
if (action.token != undefined) u.token = action.token;
state = Object.assign({}, state, {
logged: action.logged,
onHold: action.onHold,
userDetails: u
// userDetails: u,
token:action.token
});
return state;
@ -144,16 +156,20 @@ const apiReducer = (state = apiState, action) => {
state = Object.assign({}, state, {
user: {},
userDetails: {},
token:{},
logged: false
});
return state;
case USER_INFO:
state = Object.assign({}, state, {
user: action.user,
loggedIn: action.loggedIn,
onHold: action.onHold
onHold: action.onHold,
token: action.token
});
return state;