1.0.0 • Published 4 years ago

yrgo-schedule-fetcher-teeeest v1.0.0

Weekly downloads
-
License
MIT
Repository
-
Last release
4 years ago

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

npm install YrgoSchedueleFetcher

alternativt,

yarn add YrgoSchedueleFetcher

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

1.0.0

4 years ago