All files / games/mc/src/services encounters.ts

100% Statements 14/14
100% Branches 0/0
100% Functions 7/7
100% Lines 14/14

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45  11x 11x 11x 11x     3x 3x 2x                 3x       2x 2x   2x         1x             1x     11x        
import { Service } from "./service";
import { Encounter, EncounterInterface } from "../@models";
 
export class EncountersService extends Service {
    public loadJson(data: EncounterInterface[]): Encounter[] {
        const encounters: Encounter[] = [];
 
        data.forEach((encounter) => {
            encounters.push(
                new Encounter({
                    id: encounter.id,
                    scenario: encounter.scenario,
                    modularSets: encounter.modularSets,
                    heroes: encounter.heroes,
                    difficulty: encounter.difficulty,
                    result: encounter.result,
                }),
            );
        });
 
        return encounters;
    }
 
    public load(): Promise<Encounter[]> {
        // eslint-disable-next-line compat/compat
        return fetch(`${this.apiEndpoint}/encounters`)
            .then((response) => response.json())
            .then((data) => {
                return this.loadJson(data);
            });
    }
 
    public async save(encounter: Partial<Encounter>): Promise<Encounter[]> {
        // eslint-disable-next-line compat/compat
        return fetch(`${this.apiEndpoint}/encounters`, {
            method: "POST",
            mode: "cors",
            headers: {
                "Content-Type": "application/json",
            },
            body: JSON.stringify(encounter),
        }).then((response) => response.json());
    }
}