Chore: housekeeping, fix tests

This commit is contained in:
Pieter Vander Vennet 2023-10-06 03:34:26 +02:00
parent 1f67ab2aca
commit 36a73f3a17
50 changed files with 1124 additions and 1022 deletions

View file

@ -1,17 +1,16 @@
import Constants from "../Models/Constants";
import Constants from "../Models/Constants"
export default class Maproulette {
public static readonly defaultEndpoint = "https://maproulette.org/api/v2"
public static readonly defaultEndpoint = "https://maproulette.org/api/v2";
public static readonly STATUS_OPEN = 0;
public static readonly STATUS_FIXED = 1;
public static readonly STATUS_FALSE_POSITIVE = 2;
public static readonly STATUS_SKIPPED = 3;
public static readonly STATUS_DELETED = 4;
public static readonly STATUS_ALREADY_FIXED = 5;
public static readonly STATUS_TOO_HARD = 6;
public static readonly STATUS_DISABLED = 9;
public static readonly STATUS_OPEN = 0
public static readonly STATUS_FIXED = 1
public static readonly STATUS_FALSE_POSITIVE = 2
public static readonly STATUS_SKIPPED = 3
public static readonly STATUS_DELETED = 4
public static readonly STATUS_ALREADY_FIXED = 5
public static readonly STATUS_TOO_HARD = 6
public static readonly STATUS_DISABLED = 9
public static readonly STATUS_MEANING = {
0: "Open",
@ -21,28 +20,28 @@ export default class Maproulette {
4: "Deleted",
5: "Already fixed",
6: "Too hard",
9: "Disabled"
};
public static singleton = new Maproulette();
9: "Disabled",
}
public static singleton = new Maproulette()
/*
* The API endpoint to use
*/
endpoint: string;
endpoint: string
/**
* The API key to use for all requests
*/
private readonly apiKey: string;
private readonly apiKey: string
/**
* Creates a new Maproulette instance
* @param endpoint The API endpoint to use
*/
constructor(endpoint?: string) {
this.endpoint = endpoint ?? Maproulette.defaultEndpoint;
if(!this.endpoint ){
this.endpoint = endpoint ?? Maproulette.defaultEndpoint
if (!this.endpoint) {
throw "MapRoulette endpoint is undefined. Make sure that `Maproulette.defaultEndpoint` is defined on top of the class"
}
this.apiKey = Constants.MaprouletteApiKey;
this.apiKey = Constants.MaprouletteApiKey
}
/**
@ -54,14 +53,14 @@ export default class Maproulette {
*/
public static codeToIndex(code: string): number | undefined {
if (code === "Created") {
return Maproulette.STATUS_OPEN;
return Maproulette.STATUS_OPEN
}
for (let i = 0; i < 9; i++) {
if (Maproulette.STATUS_MEANING["" + i] === code) {
return i;
return i
}
}
return undefined;
return undefined
}
/**
@ -82,18 +81,18 @@ export default class Maproulette {
completionResponses?: Record<string, string>
}
): Promise<void> {
console.log("Maproulette: setting", `${this.endpoint}/task/${taskId}/${status}`, options);
console.log("Maproulette: setting", `${this.endpoint}/task/${taskId}/${status}`, options)
const response = await fetch(`${this.endpoint}/task/${taskId}/${status}`, {
method: "PUT",
headers: {
"Content-Type": "application/json",
apiKey: this.apiKey
apiKey: this.apiKey,
},
body: options !== undefined ? JSON.stringify(options) : undefined
});
body: options !== undefined ? JSON.stringify(options) : undefined,
})
if (response.status !== 204) {
console.log(`Failed to close task: ${response.status}`);
throw `Failed to close task: ${response.status}`;
console.log(`Failed to close task: ${response.status}`)
throw `Failed to close task: ${response.status}`
}
}
}