rts2003-so
Version:
RTS2003 SO is service order, manage user, like register, update, delete.
203 lines (180 loc) • 6.12 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_SECRET_KEY = process.env.RTS2003_SO_SECRET_KEY || '';
class SingleSignOn {
constructor(endpoint = RTS2003_SO_ENDPOINT, secretKey = RTS2003_SO_SECRET_KEY) {
this.endpoint = endpoint;
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.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 (!secret_key.first_name) {
return { message: "Field first_name not found", statusCode: 400, error: false };
}
if (!secret_key.last_name) {
return { message: "Field last_name not found", statusCode: 400, error: false };
}
if (!secret_key.is_active) {
return { message: "Field is_active not found", statusCode: 400, error: false };
}
if (!secret_key.created_by) {
return { message: "Field created_by not found", statusCode: 400, error: false };
}
const response = await fetch(`${this.endpoint}/user/register/${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 (!secret_key.first_name) {
return { message: "Field first_name not found", statusCode: 400, error: false };
}
if (!secret_key.last_name) {
return { message: "Field last_name not found", statusCode: 400, error: false };
}
if (!secret_key.is_active) {
return { message: "Field is_active not found", statusCode: 400, error: false };
}
if (!secret_key.updated_by) {
return { message: "Field updated_by not found", statusCode: 400, error: false };
}
const response = await fetch(`${this.endpoint}/user/update/${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 (!secret_key.deleted_by) {
return { message: "Field deleted_by not found", statusCode: 400, error: false };
}
const response = await fetch(`${this.endpoint}/user/delete/${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.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 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.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 };
}
}
}
module.exports = {
RTS2003_SO_ENDPOINT,
RTS2003_SO_SECRET_KEY,
SingleSignOn
};