Fixing some bugs and updating dependencies

This commit is contained in:
Fabian
2019-07-05 14:25:50 +02:00
parent 4b7c9ec6cd
commit 38b2cd8fa4
5 changed files with 206 additions and 1283 deletions

View File

@ -84,8 +84,10 @@ function statusParser(res: Response) {
}
}
export type JWTCallback = (err: Error | null | string, jwt: string) => void;
export default class SecureFileWrapper {
private _jwtObservableServer: Observable<(jwt: string) => void> = new Observable();
private _jwtObservableServer: Observable<JWTCallback> = new Observable();
jwtObservable = this._jwtObservableServer.getPublicApi();
private jwt: string;
@ -103,10 +105,18 @@ export default class SecureFileWrapper {
public async getJWT() {
if (!this.auth_lock.locked) {
let lock = await this.auth_lock.getLock();
this._jwtObservableServer.send((jwt: string) => {
this.jwt = jwt;
lock.release();
});
await new Promise((yes, no) => {
this._jwtObservableServer.send((err: Error | null | string, jwt: string) => {
if (err) {
this.jwt = undefined;
no(err);
}
else {
this.jwt = jwt;
yes();
}
});
}).finally(() => lock.release())
}
await this.auth_lock.getLock().then(lock => lock.release())
@ -232,4 +242,9 @@ export default class SecureFileWrapper {
async restore(id: string, version: string) {
await this.makeRequest(`/files/${id}/history/${version}/restore`, "PUT", {});
}
async clean(id: string, val: number | Date): Promise<void> {
let query = typeof val === "number" ? { count: val } : { date: val.toISOString() };
return this.makeRequest(`/files/${id}/history/clean`, "PUT", query);
}
}

View File

@ -167,7 +167,7 @@ function test(sf: SecureFile) {
describe("SecureFile Tests", function () {
let sf = new SecureFile("http://localhost:3004");
sf.jwtObservable.subscribe((callback) => {
callback("TESTJWT");
callback(null, "TESTJWT");
})
test(sf)
})