2021-03-25 14:22:43 +00:00
|
|
|
import BaseApi from "./base";
|
|
|
|
|
|
|
|
class SystemApi extends BaseApi {
|
|
|
|
constructor() {
|
|
|
|
super("/system");
|
|
|
|
}
|
|
|
|
|
|
|
|
private async performAction(action: string) {
|
|
|
|
return new Promise((resolve, reject) => {
|
|
|
|
this.post<void>("", undefined, { action })
|
|
|
|
.then(resolve)
|
|
|
|
.catch(reject);
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
async login(username: string, password: string) {
|
|
|
|
return new Promise((resolve, reject) => {
|
|
|
|
this.post<void>("/account", { username, password }, { action: "login" })
|
|
|
|
.then(resolve)
|
|
|
|
.catch(reject);
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
async logout() {
|
|
|
|
return new Promise((resolve, reject) => {
|
|
|
|
this.post<void>("/account", undefined, { action: "logout" })
|
|
|
|
.then(resolve)
|
|
|
|
.catch(reject);
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
async shutdown() {
|
|
|
|
return this.performAction("shutdown");
|
|
|
|
}
|
|
|
|
|
|
|
|
async restart() {
|
|
|
|
return this.performAction("restart");
|
|
|
|
}
|
|
|
|
|
|
|
|
async settings() {
|
|
|
|
return new Promise<Settings>((resolve, reject) => {
|
|
|
|
this.get<Settings>("/settings")
|
|
|
|
.then((result) => {
|
|
|
|
resolve(result.data);
|
|
|
|
})
|
|
|
|
.catch(reject);
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
async setSettings(data: object) {
|
|
|
|
return new Promise<void>((resolve, reject) => {
|
|
|
|
this.post<void>("/settings", data)
|
|
|
|
.then((res) => {
|
|
|
|
resolve();
|
|
|
|
})
|
|
|
|
.catch(reject);
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
2021-06-10 03:41:45 +00:00
|
|
|
async languages(history: boolean = false) {
|
2021-03-25 14:22:43 +00:00
|
|
|
return new Promise<Array<ApiLanguage>>((resolve, reject) => {
|
2021-06-10 03:41:45 +00:00
|
|
|
this.get<Array<ApiLanguage>>("/languages", { history })
|
2021-03-25 14:22:43 +00:00
|
|
|
.then((result) => {
|
|
|
|
resolve(result.data);
|
|
|
|
})
|
|
|
|
.catch((reason) => {
|
|
|
|
reject(reason);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
async languagesProfileList() {
|
|
|
|
return new Promise<Array<Profile.Languages>>((resolve, reject) => {
|
|
|
|
this.get<Array<Profile.Languages>>("/languages/profiles")
|
|
|
|
.then((result) => resolve(result.data))
|
|
|
|
.catch(reject);
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
async status() {
|
|
|
|
return new Promise<System.Status>((resolve, reject) => {
|
|
|
|
this.get<DataWrapper<System.Status>>("/status")
|
|
|
|
.then((result) => {
|
|
|
|
resolve(result.data.data);
|
|
|
|
})
|
|
|
|
.catch((reason) => {
|
|
|
|
reject(reason);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
2021-05-08 14:25:29 +00:00
|
|
|
async health() {
|
|
|
|
return new Promise<System.Health>((resolve, reject) => {
|
|
|
|
this.get<DataWrapper<System.Health>>("/health")
|
|
|
|
.then((result) => {
|
|
|
|
resolve(result.data.data);
|
|
|
|
})
|
|
|
|
.catch((reason) => {
|
|
|
|
reject(reason);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
2021-03-25 14:22:43 +00:00
|
|
|
async logs() {
|
|
|
|
return new Promise<Array<System.Log>>((resolve, reject) => {
|
|
|
|
this.get<DataWrapper<Array<System.Log>>>("/logs")
|
|
|
|
.then((result) => resolve(result.data.data))
|
|
|
|
.catch((err) => reject(err));
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
async releases() {
|
|
|
|
return new Promise<Array<ReleaseInfo>>((resolve, reject) => {
|
|
|
|
this.get<DataWrapper<Array<ReleaseInfo>>>("/releases")
|
|
|
|
.then((result) => resolve(result.data.data))
|
|
|
|
.catch(reject);
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
async deleteLogs() {
|
|
|
|
return new Promise<void>((resolve, reject) => {
|
|
|
|
this.delete<void>("/logs")
|
|
|
|
.then(() => resolve())
|
|
|
|
.catch((err) => reject(err));
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
async getTasks() {
|
|
|
|
return new Promise<System.Task>((resolve, reject) => {
|
|
|
|
this.get<DataWrapper<System.Task>>("/tasks")
|
|
|
|
.then((result) => {
|
|
|
|
resolve(result.data.data);
|
|
|
|
})
|
|
|
|
.catch((reason) => {
|
|
|
|
reject(reason);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
async runTask(id: string) {
|
|
|
|
return new Promise<void>((resolve, reject) => {
|
|
|
|
this.post<void>("/tasks", { taskid: id })
|
|
|
|
.then(() => {
|
|
|
|
resolve();
|
|
|
|
})
|
|
|
|
.catch((reason) => {
|
|
|
|
reject(reason);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
2021-04-15 16:46:19 +00:00
|
|
|
async testNotification(url: string) {
|
2021-03-25 14:22:43 +00:00
|
|
|
return new Promise<void>((resolve, reject) => {
|
2021-04-15 16:46:19 +00:00
|
|
|
this.patch<void>("/notifications", { url })
|
2021-03-25 14:22:43 +00:00
|
|
|
.then(() => resolve())
|
|
|
|
.catch(reject);
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
async search(query: string) {
|
|
|
|
return new Promise<ItemSearchResult[]>((resolve, reject) => {
|
|
|
|
this.get<ItemSearchResult[]>("/searches", { query })
|
|
|
|
.then((res) => resolve(res.data))
|
|
|
|
.catch(reject);
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
export default new SystemApi();
|