aspect-api-js
Version:
Package for aspect SaaS platform for JS
82 lines (66 loc) • 2.37 kB
JavaScript
import {AuthModule} from "./modules/AuthModule.js";
import {KeysModule} from "./modules/KeysModule.js";
import {PeriodsModule} from "./modules/PeriodsModule.js";
import {AuthenticatedBaseModule} from "./modules/AuthenticatedBaseModule.js";
import {CompaniesModule} from "./modules/CompaniesModule.js";
import {SoftwareModule} from "./modules/SoftwareModule.js";
import {GroupsModule} from "./modules/GroupsModule.js";
import {CustomRequestModule} from "./modules/CustomRequestModule.js";
import {LicenseModule} from "./modules/LicenseModule.js";
export class AspectApi {
constructor(
baseUrl,
version = '/api',
debug = false,
token = null
) {
this.baseUrl = baseUrl;
this.version = version;
this.url = this.baseUrl + this.version;
this.debug = debug;
this.token = token;
}
getToken() {
return this.token;
}
async authenticate(login, password) {
const auth = new AuthModule(this.url, this.debug);
const data = await auth.login(login, password);
if(!data.failed) {
this.token = data.response.data.token;
}
return data.response;
}
async register(login, email, password) {
const auth = new AuthModule(this.url, this.debug);
const data = await auth.register(login, email, password);
if(!data.failed) {
this.token = data.response.data.token;
}
return data.response;
}
async me() {
return await (new AuthenticatedBaseModule(this.token, this.url, this.debug)).me();
}
keys() {
return new KeysModule(this.token, this.url, this.debug);
}
groups() {
return new GroupsModule(this.token, this.url, this.debug);
}
periods() {
return new PeriodsModule(this.token, this.url, this.debug);
}
companies() {
return new CompaniesModule(this.token, this.url, this.debug);
}
software() {
return new SoftwareModule(this.token, this.url, this.debug);
}
request() {
return new CustomRequestModule(this.url, this.debug);
}
license(nodeUrl, secret_one, secret_two) {
return new LicenseModule(secret_one, secret_two, this.token, nodeUrl, this.debug);
}
}