bazarr/frontend/src/apis/episodes.ts

139 lines
3.6 KiB
TypeScript
Raw Normal View History

2021-03-25 14:22:43 +00:00
import BaseApi from "./base";
class EpisodeApi extends BaseApi {
constructor() {
super("/episodes");
}
async bySeriesId(seriesid: number[]): Promise<Item.Episode[]> {
return new Promise<Item.Episode[]>((resolve, reject) => {
this.get<DataWrapper<Item.Episode[]>>("", { seriesid })
2021-03-25 14:22:43 +00:00
.then((result) => {
resolve(result.data.data);
})
.catch((reason) => {
reject(reason);
});
});
}
async byEpisodeId(episodeid: number[]): Promise<Item.Episode[]> {
return new Promise<Item.Episode[]>((resolve, reject) => {
this.get<DataWrapper<Item.Episode[]>>("", { episodeid })
2021-03-25 14:22:43 +00:00
.then((result) => {
resolve(result.data.data);
2021-03-25 14:22:43 +00:00
})
.catch((reason) => {
reject(reason);
});
});
}
async wanted(params: Parameter.Range) {
2021-03-25 14:22:43 +00:00
return new Promise<AsyncDataWrapper<Wanted.Episode>>((resolve, reject) => {
this.get<AsyncDataWrapper<Wanted.Episode>>("/wanted", params)
2021-03-25 14:22:43 +00:00
.then((result) => {
resolve(result.data);
})
.catch((reason) => {
reject(reason);
});
});
}
async wantedBy(episodeid: number[]) {
return new Promise<AsyncDataWrapper<Wanted.Episode>>((resolve, reject) => {
this.get<AsyncDataWrapper<Wanted.Episode>>("/wanted", { episodeid })
2021-03-25 14:22:43 +00:00
.then((result) => {
resolve(result.data);
2021-03-25 14:22:43 +00:00
})
.catch((reason) => {
reject(reason);
});
});
}
async history(episodeid?: number): Promise<History.Episode[]> {
return new Promise<History.Episode[]>((resolve, reject) => {
this.get<DataWrapper<History.Episode[]>>("/history", { episodeid })
2021-03-25 14:22:43 +00:00
.then((result) => {
resolve(result.data.data);
})
.catch((reason) => {
reject(reason);
});
});
}
async downloadSubtitles(
seriesid: number,
episodeid: number,
form: FormType.Subtitle
): Promise<void> {
return new Promise<void>((resolve, reject) => {
this.patch("/subtitles", form, { seriesid, episodeid })
.then(() => resolve())
.catch(reject);
});
}
async uploadSubtitles(
seriesid: number,
episodeid: number,
form: FormType.UploadSubtitle
): Promise<void> {
return new Promise<void>((resolve, reject) => {
this.post("/subtitles", form, { seriesid, episodeid })
.then(() => resolve())
.catch(reject);
});
}
async deleteSubtitles(
seriesid: number,
episodeid: number,
form: FormType.DeleteSubtitle
): Promise<void> {
return new Promise<void>((resolve, reject) => {
this.delete("/subtitles", form, { seriesid, episodeid })
.then(() => resolve())
.catch(reject);
});
}
async blacklist(): Promise<Blacklist.Episode[]> {
return new Promise<Blacklist.Episode[]>((resolve, reject) => {
this.get<DataWrapper<Blacklist.Episode[]>>("/blacklist")
2021-03-25 14:22:43 +00:00
.then((res) => {
resolve(res.data.data);
})
.catch(reject);
});
}
async addBlacklist(
seriesid: number,
episodeid: number,
form: FormType.AddBlacklist
): Promise<void> {
return new Promise((resolve, reject) => {
this.post<void>("/blacklist", form, { seriesid, episodeid })
.then(() => resolve())
.catch(reject);
});
}
async deleteBlacklist(
all?: boolean,
form?: FormType.DeleteBlacklist
): Promise<void> {
return new Promise((resolve, reject) => {
this.delete<void>("/blacklist", form, { all })
.then(() => resolve())
.catch(reject);
});
}
}
export default new EpisodeApi();