mirror of
https://github.com/techgarage-ir/MTWireGuard.git
synced 2025-09-01 08:15:24 +02:00
Use new front-end based on Dashmin template
This commit is contained in:
parent
c118242c5b
commit
dbd7fafb34
4391 changed files with 228401 additions and 73494 deletions
137
UI/wwwroot/js/APIClient.js
Normal file
137
UI/wwwroot/js/APIClient.js
Normal file
|
@ -0,0 +1,137 @@
|
|||
class APIClient {
|
||||
constructor() {
|
||||
}
|
||||
|
||||
async makeRequest(endpoint, method = 'GET', body = null) {
|
||||
try {
|
||||
const response = await fetch(endpoint, {
|
||||
method: method,
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
body: body ? JSON.stringify(body) : null
|
||||
});
|
||||
|
||||
const result = await response.json();
|
||||
return result;
|
||||
} catch (err) {
|
||||
throw err;
|
||||
}
|
||||
}
|
||||
|
||||
auth = {
|
||||
login: async (username, password) => {
|
||||
fetch(this.endpoints.auth.Login(), {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
body: JSON.stringify({
|
||||
username,
|
||||
password
|
||||
})
|
||||
}).then((response) => {
|
||||
if (response.status == 200) {
|
||||
location.reload();
|
||||
return true;
|
||||
}
|
||||
console.error(`Error: ${response.status}`, `Message: ${response.text()}`);
|
||||
return false;
|
||||
}).catch((err) => {
|
||||
console.log(err);
|
||||
throw err;
|
||||
});
|
||||
},
|
||||
logout: () => this.makeRequest(this.endpoints.auth.Logout)
|
||||
};
|
||||
|
||||
users = {
|
||||
getAll: () => this.makeRequest(this.endpoints.Users),
|
||||
get: (userId) => this.makeRequest(this.endpoints.users.Single(userId)),
|
||||
create: (user) => this.makeRequest(this.endpoints.Users, 'POST', user),
|
||||
update: (userId, updatedUser) => this.makeRequest(this.endpoints.users.Single(userId), 'PUT', updatedUser),
|
||||
sync: (userId, updatedUser) => this.makeRequest(this.endpoints.users.Sync(userId), 'PATCH', updatedUser),
|
||||
qr: (userId) => this.makeRequest(this.endpoints.users.QR(userId)),
|
||||
download: (userId) => this.makeRequest(this.endpoints.users.Download(userId)),
|
||||
delete: (userId) => this.makeRequest(this.endpoints.users.Single(userId), 'DELETE'),
|
||||
activate: (userId, isEnabled) => this.makeRequest(this.endpoints.users.Activation(userId), 'PATCH', isEnabled)
|
||||
};
|
||||
|
||||
servers = {
|
||||
getAll: () => this.makeRequest(this.endpoints.Servers),
|
||||
get: (serverId) => this.makeRequest(this.endpoints.servers.Single(serverId)),
|
||||
create: (server) => this.makeRequest(this.endpoints.Servers, 'POST', server),
|
||||
update: (serverId, updatedServer) => this.makeRequest(this.endpoints.servers.Single(serverId), 'PUT', updatedServer),
|
||||
delete: (serverId) => this.makeRequest(this.endpoints.servers.Single(serverId), 'DELETE'),
|
||||
activate: (serverId, isEnabled) => this.makeRequest(this.endpoints.servers.Activation(serverId), 'PATCH', isEnabled)
|
||||
};
|
||||
|
||||
pools = {
|
||||
getAll: () => this.makeRequest(this.endpoints.Pools),
|
||||
create: (pool) => this.makeRequest(this.endpoints.Pools, 'POST', pool),
|
||||
update: (poolId, updatedPool) => this.makeRequest(this.endpoints.pools.Single(poolId), 'PUT', updatedPool),
|
||||
delete: (poolId) => this.makeRequest(this.endpoints.pools.Single(poolId), 'DELETE')
|
||||
};
|
||||
|
||||
config = {
|
||||
dns: {
|
||||
get: () => this.makeRequest(this.endpoints.config.DNS),
|
||||
update: (updatedDNS) => this.makeRequest(this.endpoints.config.DNS, 'PUT', updatedDNS)
|
||||
},
|
||||
identity: {
|
||||
get: () => this.makeRequest(this.endpoints.config.Identity),
|
||||
update: (updatedIdentity) => this.makeRequest(this.endpoints.config.Identity, 'PUT', updatedIdentity)
|
||||
},
|
||||
logs: {
|
||||
getAll: () => this.makeRequest(this.endpoints.config.Logs)
|
||||
},
|
||||
resources: {
|
||||
get: () => this.makeRequest(this.endpoints.config.Resources)
|
||||
},
|
||||
information: {
|
||||
get: () => this.makeRequest(this.endpoints.config.Information)
|
||||
}
|
||||
}
|
||||
|
||||
endpoints = (function () {
|
||||
const baseUrl = "/api";
|
||||
const auth = `${baseUrl}/auth`;
|
||||
const users = `${baseUrl}/users`;
|
||||
const servers = `${baseUrl}/servers`;
|
||||
const pools = `${baseUrl}/ippools`;
|
||||
const config = `${baseUrl}/config`;
|
||||
|
||||
return {
|
||||
Auth: auth,
|
||||
Users: users,
|
||||
Servers: servers,
|
||||
Pools: pools,
|
||||
|
||||
auth: {
|
||||
Login: () => { return `${auth}/login`; },
|
||||
Logout: () => { `${auth}/logout`; },
|
||||
},
|
||||
users: {
|
||||
Single: (userId) => { return `${users}/${userId}`; },
|
||||
Sync: (userId) => { return `${users}/sync/${userId}`; },
|
||||
QR: (userId) => { return `${users}/qr/${userId}`; },
|
||||
Download: (userId) => { return `${users}/file/${userId}`; },
|
||||
Activation: (userId) => { return `${users}/activation/${userId}`; }
|
||||
},
|
||||
servers: {
|
||||
Single: (serverId) => { return `${servers}/${serverId}`; },
|
||||
Activation: (serverId) => { return `${servers}/activation/${serverId}`; }
|
||||
},
|
||||
pools: {
|
||||
Single: (poolId) => { return `${pools}/${poolId}`; },
|
||||
},
|
||||
config: {
|
||||
DNS: `${config}/dns`,
|
||||
Identity: `${config}/identity`,
|
||||
Information: `${config}/information`,
|
||||
Logs: `${config}/logs`,
|
||||
Resources: `${config}/resources`
|
||||
}
|
||||
};
|
||||
})();
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue