From d4530e2b415e745d568f236d7acc5240e0193a09 Mon Sep 17 00:00:00 2001 From: Ulf Gebhardt Date: Fri, 26 Feb 2021 00:36:17 +0100 Subject: [PATCH] implemented loginAPI --- frontend/src/apis/loginAPI.js | 82 +++++++++++++++++++++++++++++++++ frontend/src/mixins/loginAPI.js | 19 -------- 2 files changed, 82 insertions(+), 19 deletions(-) create mode 100644 frontend/src/apis/loginAPI.js delete mode 100644 frontend/src/mixins/loginAPI.js diff --git a/frontend/src/apis/loginAPI.js b/frontend/src/apis/loginAPI.js new file mode 100644 index 000000000..3a58957ea --- /dev/null +++ b/frontend/src/apis/loginAPI.js @@ -0,0 +1,82 @@ +import axios from 'axios'; + +// TODO move this +const LOGIN_API_URL = 'http://localhost/login_api/' + +// control email-text sended with email verification code +const EMAIL_TYPE = { + DEFAULT: 2, // if user has registered directly + ADMIN: 5, // if user was registered by an admin +} + +// define a mixin object +const loginAPI = { + login: async (email, password) => { + const payload = { + email, + password, + } + try { + const result = await axios.post(LOGIN_API_URL + 'unsecureLogin', payload); + if(result.status !== 200){ + throw new Error('HTTP Status Error '+result.status) + } + if(result.data.state === 'error'){ + throw new Error(result.data.msg) + } + if(result.data.state !== 'success'){ + throw new Error(result.data) + } + return { success: true, result } + } catch(error){ + return { success: false, result: error} + } + }, + logout: async (session_id) => { + const payload= { session_id } + try { + const result = await axios.post(LOGIN_API_URL + 'logout', payload); + if(result.status !== 200){ + throw new Error('HTTP Status Error '+result.status) + } + if(result.data.state === 'error'){ + throw new Error(result.data.details) + } + if(result.data.state !== 'success'){ + throw new Error(result.data) + } + return { success: true, result } + } catch(error){ + return { success: false, result: error} + } + }, + create : async (email, first_name, last_name, password) => { + const payload = { + email, + first_name, + last_name, + password, + emailType: EMAIL_TYPE.DEFAULT + } + try { + const result = await axios.post(LOGIN_API_URL + 'createUser', payload); + if(result.status !== 200){ + throw new Error('HTTP Status Error '+result.status) + } + if(result.data.state === 'error'){ + throw new Error(result.data.details) + } + if(result.data.state === 'exists'){ + throw new Error(result.data.msg) + } + if(result.data.state !== 'success'){ + throw new Error(result.data) + } + return { success: true, result } + } catch(error){ + return { success: false, result: error} + } + }, +} + +export default loginAPI \ No newline at end of file diff --git a/frontend/src/mixins/loginAPI.js b/frontend/src/mixins/loginAPI.js deleted file mode 100644 index 69c5e1441..000000000 --- a/frontend/src/mixins/loginAPI.js +++ /dev/null @@ -1,19 +0,0 @@ -// TODO move this -const LOGIN_API_URL = 'http://localhost/login_api/' - -// define a mixin object -const loginAPI = { - mutations: { - login: async () => { - return axios.post(LOGIN_API_URL + 'unsecureLogin', data); - }, - creatUser : async () => { - return axios.post(LOGIN_API_URL + 'createUser', data); - }, - logout: async () => { - return axios.post(LOGIN_API_URL + 'logout', data); - }, - } -} - -export default loginAPI \ No newline at end of file