Opetushallitus/eperusteet-opintopolku

View on GitHub
src/stores/Lops2019ModuuliStore.ts

Summary

Maintainability
C
1 day
Test Coverage
import { Store, State } from '@shared/stores/store';
import { Lops2019, Lops2019ModuuliDto } from '@shared/api/eperusteet';

@Store
export class Lops2019ModuuliStore {
  @State() public perusteId: number;
  @State() public oppiaineId: number;
  @State() public moduuliId: number;
  @State() public moduuli: Lops2019ModuuliDto | null = null;

  public static async create(perusteId: number, oppiaineId: number, moduuliId: number) {
    const result = new Lops2019ModuuliStore(perusteId, oppiaineId, moduuliId);
    result.fetchModuuli();
    return result;
  }

  constructor(perusteId: number, oppiaineId: number, moduuliId: number) {
    this.perusteId = perusteId;
    this.oppiaineId = oppiaineId;
    this.moduuliId = moduuliId;
  }

  async fetchModuuli() {
    this.moduuli = null;
    this.moduuli = (await Lops2019.getModuuli(this.perusteId, this.oppiaineId, this.moduuliId)).data;
  }
}