@octopusx/ndk
Version:
octopus x sdk to connect to the octopusx grids and services
148 lines (126 loc) • 3.68 kB
text/typescript
import {Options, NewUser, LoginUser, NewGroup, NewRole} from "../utils/DataSchema";
import request from "../utils/requests";
export default class Auth {
options: Options;
constructor(options: Options) {
this.options = options;
this.options.url = process.env.OCX_AUTH_BASE_URL || process.env.VUE_APP_OCX_AUTH_BASE_URL;
}
async register(data: NewUser) {
const requestOptions: Options = {
...this.options,
data
};
const url = `auth/user/add`;
return request(`POST`, url, requestOptions);
}
async createUser(data: NewUser) {
const requestOptions: Options = {
...this.options,
data
};
const url = `auth/user/add`;
return request(`POST`, url, requestOptions);
}
async updateUser(userId:string, data:NewUser){
const requestOptions: Options = {
...this.options,
data
};
const url = `auth/user/update/${userId}`;
return request(`PATCH`, url, requestOptions);
}
async login(data: LoginUser) {
data.client_id = parseInt(process.env.PASSPORT_CLIENT_ID as string,10) || parseInt(process.env.VUE_APP_PASSPORT_CLIENT_ID as string,10)
data.client_secret = process.env.PASSPORT_CLIENT_SECRET || process.env.VUE_APP_PASSPORT_CLIENT_SECRET;
data.grant_type = "password",
data.scope = "";
const requestOptions: Options = {
...this.options,
data
};
const url = `auth/login/token`;
return request(`POST`, url, requestOptions);
}
async showUser(userId:number) {
const requestOptions: Options = {
...this.options
};
const url = `auth/user/get/${userId}`;
return request(`GET`, url, requestOptions);
}
async fetchUsers(){
const requestOptions: Options = {
...this.options
};
const url = `auth/user/get`;
return request(`GET`, url, requestOptions);
}
async getAuthenticatedUser() {
const requestOptions: Options = {
...this.options
};
const url = `auth/client/verify`;
return request(`GET`, url, requestOptions);
}
async createGroup(data: NewGroup){
const requestOptions: Options = {
...this.options,
data
};
const url = `auth/groups/add`;
return request(`POST`, url, requestOptions);
}
async updateGroup(groupId:string, data: NewGroup){
const requestOptions: Options = {
...this.options,
data
};
const url = `auth/groups/update/${groupId}`;
return request(`PATCH`, url, requestOptions);
}
async deleteGroup(groupId:string){
const requestOptions: Options = {
...this.options,
};
const url = `auth/groups/remove/${groupId}`;
return request(`DELETE`, url, requestOptions);
}
async fetchGroups(){
const requestOptions: Options = {
...this.options
};
const url = `auth/groups`;
return request(`GET`, url, requestOptions);
}
async createRole(data: NewRole){
const requestOptions: Options = {
...this.options,
data
};
const url = `auth/roles/add`;
return request(`POST`, url, requestOptions);
}
async fetchRoles(){
const requestOptions: Options = {
...this.options
};
const url = `auth/roles`;
return request(`GET`, url, requestOptions);
}
async updateRole(roleId:string, data: NewRole){
const requestOptions: Options = {
...this.options,
data
};
const url = `auth/roles/update/${roleId}`;
return request(`PATCH`, url, requestOptions);
}
async deleteRole(roleId:string){
const requestOptions: Options = {
...this.options,
};
const url = `auth/roles/remove/${roleId}`;
return request(`DELETE`, url, requestOptions);
}
}