yrgo-schedule-fetcher-tret

Används för att parsea Schemat för WU20 och göra det till ett mer lättarbetat JSON format. Bör även även gå att parsea andra klassers schema som använder sig av RFC5545 formatet.

Usage no npm install needed!

<script type="module">
  import yrgoScheduleFetcherTret from 'https://cdn.skypack.dev/yrgo-schedule-fetcher-tret';
</script>

README

Scheduele Parser for YRGO

Används för att parsea Schemat för WU20 och göra det till ett mer lättarbetat JSON format. Bör även även gå att parsea andra klassers schema som använder sig av RFC5545 formatet.

Installation

Försöker fixa atm....

API

YrgoScheduleFetcher baseras på Asynkrona operationer vilket innebär att varje operation returnerar ett

Promise<YrgoSchedule>

Därav måste ni använda async/await eller then() när ni anropar en av metoderna.

Json

YrgoSchedule är inget mer än en Array av JSON objekt, exempel:

{
  "day": "Torsdag",
  "date": "15",
  "month": "Oktober",
  "year": "2020",
  "startTime": "13:00",
  "endTime": "16:00",
  "teacher": "Vincent Klaiber",
  "lesson": "SQL / Datakällor "
}

ExempelAnvändning:

Hämta alla lektioner denna månaden som görs av Vincent och skriv ut det.

import {
  filterBy,
  getLessonsThisMonth,
  getYrgoSchedule,
  printSchedule,
} from './YrgoSchedule';

async function main() {
  // Hämtar WU20 Schemat by default
  const mySchedule = getYrgoSchedule();

  // Hämtar lektioner för månaden
  const monthlySchedule = getLessonsThisMonth(mySchedule);

  // Filtrera ut alla som inte har Vincent som lärare
  const vincentLessons = filterBy(
    monthlySchedule,
    'teacher',
    'Vincent Klaiber'
  );

  // Pretty printar ut schemat
  printSchedule(vincentLessons);
}

main();

Funktioner

Funktioner som stöjds är:

getYrgoSchedule(scheduleID: string) => Returnerar ett Promise<YrgoSchedule>

getLessonsToday(scheduele: Promise<YrgoSchedule>) -> Returnerar dagens lektioner som ett Promise<YrgoSchedule>

getLessonsThisWeek(scheduele: Promise<YrgoSchedule>) -> Returnerar alla lektioner för denna veckan som ett Promise<YrgoSchedule>

getRemainingLessonsInWeek(scheduele: Promise<YrgoSchedule>) -> Returnerar alla återstående lektioner för veckan som ett Promise<YrgoSchedule>

getLessonsThisMonth(scheduele: Promise<YrgoSchedule>) -> Returnerar alla lektioner för denna månaden som ett Promise<YrgoSchedule>

getRemainingLessonsInMonth(scheduele:Promise<YrgoSchedule>) -> Returnerar alla återstående lektioner för månaden som ett Promise<YrgoSchedule>

getLessonInX(scheduele: Promise<YrgoSchedule>, startDate: Date, endDate: Date) -> Returnerar alla lektioner mellan 2 Dates som ett Promise<YrgoSchedule>

filterBy(scheduele: Promise<YrgoSchedule>, property: string, value: string) -> Returnerar ett Promise<YrgoSchedule> baserat på property, samt värdet man vill filtrera med.

Andra Klassers Scheman

Vill man använda andra klassers Scheman t.ex. WU19, så behöver man bara passera ett Kalender ID för detta schemat, Hänvisning till hur man detta finns här: Hitta Calendar ID för andra klasser