UNPKG

rts2003-so

Version:

RTS2003 SO is service order, manage user, like re-token, logout, register, update, delete, update password, get user.

275 lines (244 loc) 8.44 kB
const fetch = (...args) => import('node-fetch').then(({default: fetch}) => fetch(...args)); const RTS2003_SO_ENDPOINT = process.env.RTS2003_SO_ENDPOINT || ''; const RTS2003_SO_CLIENT_ID = process.env.RTS2003_SO_CLIENT_ID || ''; const RTS2003_SO_SECRET_KEY = process.env.RTS2003_SO_SECRET_KEY || ''; class SingleSignOn { constructor(endpoint = RTS2003_SO_ENDPOINT, clientId = RTS2003_SO_CLIENT_ID, secretKey = RTS2003_SO_SECRET_KEY) { this.endpoint = endpoint; this.clientId = clientId; this.secretKey = secretKey; } async userRegister(dataToSend = { email, first_name, last_name, is_active, created_by }) { try { if (!this.endpoint) { return { message: "Environment endpoint not found", statusCode: 400, error: false }; } if (!this.clientId) { return { message: "Environment client id not found", statusCode: 400, error: false }; } if (!this.secretKey) { return { message: "Environment secret key not found", statusCode: 400, error: false }; } if (!dataToSend.email) { return { message: "Field email not found", statusCode: 400, error: false }; } if (!dataToSend.first_name) { return { message: "Field first_name not found", statusCode: 400, error: false }; } if (!dataToSend.last_name) { return { message: "Field last_name not found", statusCode: 400, error: false }; } if (!dataToSend.is_active) { return { message: "Field is_active not found", statusCode: 400, error: false }; } if (!dataToSend.created_by) { return { message: "Field created_by not found", statusCode: 400, error: false }; } const response = await fetch(`${this.endpoint}/user/register/${this.clientId}/${this.secretKey}`, { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify(dataToSend) }); const responseData = await response.json(); return responseData; } catch (error) { return { message: error, statusCode: 500, error: true }; } } async userUpdate(dataToSend = { id, first_name, last_name, is_active, updated_by }) { try { if (!this.endpoint) { return { message: "Environment endpoint not found", statusCode: 400, error: false }; } if (!this.secretKey) { return { message: "Environment secret key not found", statusCode: 400, error: false }; } if (!dataToSend.id) { return { message: "Field id not found", statusCode: 400, error: false }; } if (!dataToSend.first_name) { return { message: "Field first_name not found", statusCode: 400, error: false }; } if (!dataToSend.last_name) { return { message: "Field last_name not found", statusCode: 400, error: false }; } if (!dataToSend.is_active) { return { message: "Field is_active not found", statusCode: 400, error: false }; } if (!dataToSend.updated_by) { return { message: "Field updated_by not found", statusCode: 400, error: false }; } const response = await fetch(`${this.endpoint}/user/update/${this.clientId}/${this.secretKey}`, { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify(dataToSend) }); const responseData = await response.json(); return responseData; } catch (error) { return { message: error, statusCode: 500, error: true }; } } async userDelete(dataToSend = { id, deleted_by }) { try { if (!this.endpoint) { return { message: "Environment endpoint not found", statusCode: 400, error: false }; } if (!this.secretKey) { return { message: "Environment secret key not found", statusCode: 400, error: false }; } if (!dataToSend.id) { return { message: "Field id not found", statusCode: 400, error: false }; } if (!dataToSend.deleted_by) { return { message: "Field deleted_by not found", statusCode: 400, error: false }; } const response = await fetch(`${this.endpoint}/user/delete/${this.clientId}/${this.secretKey}`, { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify(dataToSend) }); const responseData = await response.json(); return responseData; } catch (error) { return { message: error, statusCode: 500, error: true }; } } async userGetOne(dataToSend = { email, id }) { try { if (!this.endpoint) { return { message: "Environment endpoint not found", statusCode: 400, error: false }; } if (!this.secretKey) { return { message: "Environment secret key not found", statusCode: 400, error: false }; } const response = await fetch(`${this.endpoint}/user/get-one/${this.clientId}/${this.secretKey}`, { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify(dataToSend) }); const responseData = await response.json(); return responseData; } catch (error) { return { message: error, statusCode: 500, error: true }; } } async userUpdatePassword(dataToSend = { email, current_password, new_password, }) { try { if (!this.endpoint) { return { message: "Environment endpoint not found", statusCode: 400, error: false }; } if (!this.secretKey) { return { message: "Environment secret key not found", statusCode: 400, error: false }; } if (!dataToSend.email) { return { message: "Field email not found", statusCode: 400, error: false }; } if (!dataToSend.current_password) { return { message: "Field current_password not found", statusCode: 400, error: false }; } if (!dataToSend.new_password) { return { message: "Field new_password not found", statusCode: 400, error: false }; } const response = await fetch(`${this.endpoint}/user/update-password/${this.clientId}/${this.secretKey}`, { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify(dataToSend) }); const responseData = await response.json(); return responseData; } catch (error) { return { message: error, statusCode: 500, error: true }; } } async userRefreshToken(dataToSend = { token }) { try { if (!this.endpoint) { return { message: "Environment endpoint not found", statusCode: 400, error: false }; } if (!this.secretKey) { return { message: "Environment secret key not found", statusCode: 400, error: false }; } if (!dataToSend.token) { return { message: "Field token not found", statusCode: 400, error: false }; } const response = await fetch(`${this.endpoint}/user/refresh-token/${this.clientId}`, { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify(dataToSend) }); const responseData = await response.json(); return responseData; } catch (error) { return { message: error, statusCode: 500, error: true }; } } async userLogout(dataToSend = { token }) { try { if (!this.endpoint) { return { message: "Environment endpoint not found", statusCode: 400, error: false }; } if (!this.secretKey) { return { message: "Environment secret key not found", statusCode: 400, error: false }; } if (!dataToSend.token) { return { message: "Field token not found", statusCode: 400, error: false }; } const response = await fetch(`${this.endpoint}/user/logout/${this.clientId}`, { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify(dataToSend) }); const responseData = await response.json(); return responseData; } catch (error) { return { message: error, statusCode: 500, error: true }; } } } module.exports = { RTS2003_SO_ENDPOINT, RTS2003_SO_CLIENT_ID, RTS2003_SO_SECRET_KEY, SingleSignOn };