mirror of
https://github.com/IT4Change/gradido.git
synced 2025-12-13 07:45:54 +00:00
148 lines
4.1 KiB
JavaScript
148 lines
4.1 KiB
JavaScript
import axios from 'axios'
|
|
import CONFIG from '../config'
|
|
// eslint-disable-next-line no-unused-vars
|
|
import regeneratorRuntime from 'regenerator-runtime'
|
|
|
|
// 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
|
|
}
|
|
|
|
const apiGet = async (url) => {
|
|
try {
|
|
const result = await axios.get(url)
|
|
if (result.status !== 200) {
|
|
throw new Error('HTTP Status Error ' + result.status)
|
|
}
|
|
if (!['success', 'warning'].includes(result.data.state)) {
|
|
throw new Error(result.data.msg)
|
|
}
|
|
return { success: true, result }
|
|
} catch (error) {
|
|
return { success: false, result: error }
|
|
}
|
|
}
|
|
|
|
const apiPost = async (url, payload) => {
|
|
try {
|
|
const result = await axios.post(url, payload)
|
|
if (result.status !== 200) {
|
|
throw new Error('HTTP Status Error ' + result.status)
|
|
}
|
|
if (result.data.state === 'warning') {
|
|
return { success: true, result: result.error }
|
|
}
|
|
if (result.data.state !== 'success') {
|
|
throw new Error(result.data.msg)
|
|
}
|
|
return { success: true, result }
|
|
} catch (error) {
|
|
return { success: false, result: error }
|
|
}
|
|
}
|
|
|
|
const loginAPI = {
|
|
login: async (email, password) => {
|
|
const payload = {
|
|
email,
|
|
password,
|
|
}
|
|
return apiPost(CONFIG.LOGIN_API_URL + 'unsecureLogin', payload)
|
|
},
|
|
logout: async (sessionId) => {
|
|
const payload = { session_id: sessionId }
|
|
return apiPost(CONFIG.LOGIN_API_URL + 'logout', payload)
|
|
},
|
|
create: async (email, firstName, lastName, password) => {
|
|
const payload = {
|
|
email,
|
|
first_name: firstName,
|
|
last_name: lastName,
|
|
password,
|
|
emailType: EMAIL_TYPE.DEFAULT,
|
|
login_after_register: true,
|
|
}
|
|
return apiPost(CONFIG.LOGIN_API_URL + 'createUser', payload)
|
|
},
|
|
sendEmail: async (email, email_text = 7, email_verification_code_type = 'resetPassword') => {
|
|
const payload = {
|
|
email,
|
|
email_text,
|
|
email_verification_code_type,
|
|
}
|
|
return apiPost(CONFIG.LOGIN_API_URL + 'sendEmail', payload)
|
|
},
|
|
loginViaEmailVerificationCode: async (optin) => {
|
|
return apiGet(
|
|
CONFIG.LOGIN_API_URL + 'loginViaEmailVerificationCode?emailVerificationCode=' + optin,
|
|
)
|
|
},
|
|
getUserInfos: async (sessionId, email) => {
|
|
const payload = {
|
|
session_id: sessionId,
|
|
email: email,
|
|
ask: ['user.first_name', 'user.last_name'],
|
|
}
|
|
return apiPost(CONFIG.LOGIN_API_URL + 'getUserInfos', payload)
|
|
},
|
|
updateUserInfos: async (sessionId, email, data) => {
|
|
const payload = {
|
|
session_id: sessionId,
|
|
email,
|
|
update: {
|
|
'User.first_name': data.firstName,
|
|
'User.last_name': data.lastName,
|
|
'User.description': data.description,
|
|
},
|
|
}
|
|
return apiPost(CONFIG.LOGIN_API_URL + 'updateUserInfos', payload)
|
|
},
|
|
changePassword: async (sessionId, email, password) => {
|
|
const payload = {
|
|
session_id: sessionId,
|
|
email,
|
|
update: {
|
|
'User.password': password,
|
|
},
|
|
}
|
|
return apiPost(CONFIG.LOGIN_API_URL + 'updateUserInfos', payload)
|
|
},
|
|
changePasswordProfile: async (sessionId, email, password, passwordNew) => {
|
|
const payload = {
|
|
session_id: sessionId,
|
|
email,
|
|
update: {
|
|
'User.password': password,
|
|
'User.passwordNew': passwordNew,
|
|
},
|
|
}
|
|
return apiPost(CONFIG.LOGIN_API_URL + 'updateUserInfos', payload)
|
|
},
|
|
changeUsernameProfile: async (sessionId, email, username) => {
|
|
const payload = {
|
|
session_id: sessionId,
|
|
email,
|
|
update: {
|
|
'User.username': username,
|
|
},
|
|
}
|
|
return apiPost(CONFIG.LOGIN_API_URL + 'updateUserInfos', payload)
|
|
},
|
|
updateLanguage: async (sessionId, email, language) => {
|
|
const payload = {
|
|
session_id: sessionId,
|
|
email,
|
|
update: {
|
|
'User.language': language,
|
|
},
|
|
}
|
|
return apiPost(CONFIG.LOGIN_API_URL + 'updateUserInfos', payload)
|
|
},
|
|
checkUsername: async (username, groupId = 1) => {
|
|
return apiGet(CONFIG.LOGIN_API_URL + `checkUsername?username=${username}&group_id=${groupId}`)
|
|
},
|
|
}
|
|
|
|
export default loginAPI
|