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
JavaScript
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
};