From 907d47f33ca0a78b62429eb3ec3fb9254ae31842 Mon Sep 17 00:00:00 2001 From: paolo Date: Tue, 16 Oct 2018 18:58:26 +0200 Subject: [PATCH] Validation dei campi di registrazione: OK Invio al server e scrittura su DB: OK --- src/store/modules/user.js | 199 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 199 insertions(+) create mode 100644 src/store/modules/user.js diff --git a/src/store/modules/user.js b/src/store/modules/user.js new file mode 100644 index 0000000..d2d7c23 --- /dev/null +++ b/src/store/modules/user.js @@ -0,0 +1,199 @@ +import Vue from 'vue' +import Vuex from 'vuex' + +Vue.use(Vuex); + +import * as types from '../mutation-types' +import tools from '../../../tools/tools' + +export const Errori_MongoDb = { + CALLING: 10, + OK: 20, + ERR_GENERICO: -1, + DUPLICATE_EMAIL_ID: 11000, + DUPLICATE_USERNAME_ID: 11100 +}; + +export const state = { + user: { + email: '', + username: null, + password: '', + ripetipassword: '', + dateofbirth: '', + + idToken: '', + userId: 0, + }, + userServer: null, + servercode: 0, +}; + +function sendRequest(url, method, mydata) { + const options = { + method: method, + //mode: 'no-cors', + headers: new Headers({'content-type': 'application/json'}), + cache: "no-cache", + body: JSON.stringify(mydata), + }; + + if (true) { + return fetch(url, options); + } + +}; + + +export const getters = { + getUser: state => state.user, + getUsername: state => state.user.username, + getPassword: state => state.user.password, + getDateOfBirth: state => state.user.dateofbirth, + getUserServer: state => state.user.userServer, + getServerCode: state => state.servercode, +}; + + +export const mutations = { + [types.USER_REC]: (state, payload) => { + state.user = payload; + }, + [types.USER_USERNAME]: (state, payload) => { + state.user.username = payload; + }, + [types.USER_PASSWORD]: (state, payload) => { + state.user.password = payload; + }, + [types.USER_EMAIL]: (state, payload) => { + state.user.email = payload; + }, + [types.USER_DATEOFBIRTH]: (state, payload) => { + state.user.dateOfBirth = payload; + }, + + authUser(state, userData) { + if (userData.email == state.user.email) { + state.user.idToken = userData.idToken; + state.user.userId = userData.email + } + }, + setUser(state, user) { + state.userServer = user + }, + + setServerCode(state, servercode) { + state.servercode = servercode; + }, + clearAuthData(state) { + state.idToken = null + state.userId = null + } +}; + + +export const actions = { + [types.USER_REC]: ({commit}, payload) => { + commit(types.USER_REC, payload) + }, + [types.USER_USERNAME]: ({commit}, payload) => { + commit(types.USER_USERNAME, payload) + }, + [types.USER_PASSWORD]: ({commit}, payload) => { + commit(types.USER_PASSWORD, payload) + }, + [types.USER_EMAIL]: ({commit}, payload) => { + commit(types.USER_EMAIL, payload) + }, + [types.USER_DATEOFBIRTH]: ({commit}, payload) => { + commit(types.USER_DATEOFBIRTH, payload) + }, + + [types.USER_SIGNUP]: ({commit}, authData) => { + var call = process.env.MONGODB_HOST + '/users'; + console.log("CALL " + call); + + let params = { + keyappid: process.env.PAO_APP_ID, + email: authData.email, + password: authData.password, + username: authData.username, + }; + + console.log(params); + + var myres = null; + + commit('setServerCode', Errori_MongoDb.CALLING); + + return sendRequest(call, "POST", params) + .then((res) => { + myres = res; + return res.json(); + }) + .then((body) => { + if (process.env.DEV) { + console.log("RISULTATO "); + console.log("STATUS " + myres.status + " " + (myres.statusText)); + console.log("BODY:"); + console.log(body); + } + + commit('setServerCode', myres); + + commit('setUser', body); + + if (myres.status === 200) { + var idToken = body._id; + var email = body.email; + if (process.env.DEV) { + console.log("EMAIL = " + body.email); + console.log("ID= " + idToken); + } + commit('authUser', { + idToken: idToken, + email: email + }); + const now = new Date(); + //const expirationDate = new Date(now.getTime() + myres.data.expiresIn * 1000); + const expirationDate = new Date(now.getTime() + 1000); + localStorage.setItem('token', idToken); + //localStorage.setItem('userId', myres.data.localId) + localStorage.setItem('expirationDate', expirationDate); + //dispatch('storeUser', authData); + //dispatch('setLogoutTimer', myres.data.expiresIn); + console.log("2 - FINE SIGNUP...."); + return Errori_MongoDb.OK; + } else if (myres.status === 404) { + if (process.env.DEV) { + console.log("CODE = " + body.code); + } + console.log("2 - FINE SIGNUP...."); + return body.code; + } else { + if (process.env.DEV) { + console.log("CODE = " + body.code); + } + console.log("2 - FINE SIGNUP...."); + return body.code; + } + }) + .catch( (error) => { + console.log("ERROREEEEEEEEE"); + console.log(error); + commit('setServerCode', Errori_MongoDb.ERR_GENERICO); + return Errori_MongoDb.ERR_GENERICO; + }); + }, + +}; + +export default { + namespaced: true, + state, + getters, + mutations, + actions, + Errori_MongoDb, +} +