feat: 🎸 Names from curriculum (#116)

* feat: 🎸 Names from curriculum

* feat: 🎸 Updated fake data with new info
This commit is contained in:
Johan Öbrink 2021-04-13 14:15:01 +02:00 committed by GitHub
parent 5c170dc070
commit 504503f7a0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 121 additions and 73 deletions

View File

@ -1142,8 +1142,10 @@ export const timetable = (child: Skola24Child): TimetableEntry[] => {
return [
{
id: 'N2FjMDc1NjYtZmM2Yy0wZDQyLTY3M2YtZWI5NGNiZDA3ZGU4',
blockName: '',
code: 'Lunch',
name: 'Lunch',
category: '',
blockName: '',
dayOfWeek: 1,
location: 'Ö5',
teacher: '',
@ -1151,12 +1153,13 @@ export const timetable = (child: Skola24Child): TimetableEntry[] => {
timeStart: '11:40:00',
dateStart: '2021-04-12T11:40:00.000+02:00',
dateEnd: '2021-04-12T12:05:00.000+02:00',
name: '',
},
{
id: 'ZTQ1NWE0N2EtNzAwOS0wZTAzLTQ1ZDYtNTA1NWI4Y2JhNDYw',
blockName: '',
code: 'BL',
name: 'Bild',
category: '',
blockName: '',
dayOfWeek: 1,
location: '221',
teacher: 'KUr',
@ -1164,12 +1167,14 @@ export const timetable = (child: Skola24Child): TimetableEntry[] => {
timeStart: '09:40:00',
dateStart: '2021-04-12T09:40:00.000+02:00',
dateEnd: '2021-04-12T11:35:00.000+02:00',
name: '',
},
{
id: 'YjAxODRmY2QtNTJjZS0wMDJlLTYxOGItYmFlNTVlNDgzZmVk',
blockName: '',
code: 'NO',
name: 'Naturorienterande ämnen',
category: '',
comment: 'a)',
blockName: '',
dayOfWeek: 1,
location: '307',
teacher: 'TBo',
@ -1177,12 +1182,13 @@ export const timetable = (child: Skola24Child): TimetableEntry[] => {
timeStart: '12:30:00',
dateStart: '2021-04-12T12:30:00.000+02:00',
dateEnd: '2021-04-12T13:30:00.000+02:00',
name: '',
},
{
id: 'MWRiZGI1NzgtYWIzNy0wYzMwLTVkMmEtMWFjNWRkMTRmOTdh',
blockName: '',
code: 'IDH',
name: 'Idrott & hälsa',
category: '',
blockName: '',
dayOfWeek: 1,
location: '215',
teacher: 'HAl',
@ -1190,12 +1196,13 @@ export const timetable = (child: Skola24Child): TimetableEntry[] => {
timeStart: '14:40:00',
dateStart: '2021-04-12T14:40:00.000+02:00',
dateEnd: '2021-04-12T15:45:00.000+02:00',
name: '',
},
{
id: 'MmZkZTZiMzMtMjdjMS0wZGIzLTUzYWYtZTg0Zjc1NDRlNzQw',
blockName: '',
code: 'M2FR',
name: 'Franska',
category: 'Moderna språk, språkval',
blockName: '',
dayOfWeek: 1,
location: '304',
teacher: 'DNi',
@ -1203,12 +1210,13 @@ export const timetable = (child: Skola24Child): TimetableEntry[] => {
timeStart: '13:40:00',
dateStart: '2021-04-12T13:40:00.000+02:00',
dateEnd: '2021-04-12T14:25:00.000+02:00',
name: '',
},
{
id: 'MzAxMzU3MWItZGM1Ny0wOGVhLTVkZjUtOGFkMGIyYTY2OTAx',
blockName: '',
code: 'SO',
name: 'Samhällsorienterande ämnen',
category: '',
blockName: '',
dayOfWeek: 1,
location: '303',
teacher: 'HRr',
@ -1216,12 +1224,13 @@ export const timetable = (child: Skola24Child): TimetableEntry[] => {
timeStart: '08:15:00',
dateStart: '2021-04-12T08:15:00.000+02:00',
dateEnd: '2021-04-12T09:25:00.000+02:00',
name: '',
},
{
id: 'NDY3MDY1MmYtOTIzYi0wZmQ0LTVlZGEtNGVhZDRkOTExNTgz',
blockName: '',
code: 'M2FR',
name: 'Franska',
category: 'Moderna språk, språkval',
blockName: '',
dayOfWeek: 2,
location: '302,Fjärr',
teacher: 'DNi',
@ -1229,12 +1238,13 @@ export const timetable = (child: Skola24Child): TimetableEntry[] => {
timeStart: '09:05:00',
dateStart: '2021-04-13T09:05:00.000+02:00',
dateEnd: '2021-04-13T09:50:00.000+02:00',
name: '',
},
{
id: 'NmE4OTU1NmItYzM0ZS0wYTI1LTYzM2QtYzBiN2M4OTVmYTQ3',
blockName: '',
code: 'EN',
name: 'Engelska',
category: '',
blockName: '',
dayOfWeek: 2,
location: 'Fjärr',
teacher: 'TPe',
@ -1242,12 +1252,13 @@ export const timetable = (child: Skola24Child): TimetableEntry[] => {
timeStart: '12:30:00',
dateStart: '2021-04-13T12:30:00.000+02:00',
dateEnd: '2021-04-13T13:15:00.000+02:00',
name: '',
},
{
id: 'NDAxODRjOTctMmE5ZC0wMzdjLTY2NDMtODhlODEzOTQ3YTJh',
blockName: '',
code: 'Lunch',
name: 'Lunch',
category: '',
blockName: '',
dayOfWeek: 2,
location: 'Fjärr',
teacher: '',
@ -1255,12 +1266,13 @@ export const timetable = (child: Skola24Child): TimetableEntry[] => {
timeStart: '11:40:00',
dateStart: '2021-04-13T11:40:00.000+02:00',
dateEnd: '2021-04-13T12:05:00.000+02:00',
name: '',
},
{
id: 'ZTc4YTcyZTUtMDc0NS0wNDE0LTVjODctYjY0MzQ2MGM3MDll',
blockName: '',
code: 'MA',
name: 'Matematik',
category: '',
blockName: '',
dayOfWeek: 2,
location: 'Fjärr',
teacher: 'CBr',
@ -1268,12 +1280,13 @@ export const timetable = (child: Skola24Child): TimetableEntry[] => {
timeStart: '10:00:00',
dateStart: '2021-04-13T10:00:00.000+02:00',
dateEnd: '2021-04-13T11:20:00.000+02:00',
name: '',
},
{
id: 'MjRkMWE4YTItYTk5ZC0wYTFmLTVhMDgtMThiMmNhZDc1ZDUz',
blockName: '',
code: 'MU',
name: 'Musik',
category: '',
blockName: '',
dayOfWeek: 2,
location: 'Fjärr',
teacher: 'KBj',
@ -1281,12 +1294,13 @@ export const timetable = (child: Skola24Child): TimetableEntry[] => {
timeStart: '13:30:00',
dateStart: '2021-04-13T13:30:00.000+02:00',
dateEnd: '2021-04-13T14:15:00.000+02:00',
name: '',
},
{
id: 'NTU4ZTc4ZTctNDQyMy0wMjVkLTRiYzktZGUwYmFmYzk2YTlj',
blockName: '',
code: 'EN',
name: 'Engelska',
category: '',
blockName: '',
dayOfWeek: 3,
location: '303',
teacher: 'TPe',
@ -1294,12 +1308,14 @@ export const timetable = (child: Skola24Child): TimetableEntry[] => {
timeStart: '09:10:00',
dateStart: '2021-04-14T09:10:00.000+02:00',
dateEnd: '2021-04-14T09:55:00.000+02:00',
name: '',
},
{
id: 'NDUyNjIxODItYzFiOC0wOTFjLTYwODYtZDllZjZjN2QyYzA3',
code: 'SV',
name: 'Svenska',
category: '',
comment: 'a)',
blockName: '',
code: 'SV a)',
dayOfWeek: 3,
location: '303',
teacher: 'JCa',
@ -1307,12 +1323,13 @@ export const timetable = (child: Skola24Child): TimetableEntry[] => {
timeStart: '14:00:00',
dateStart: '2021-04-14T14:00:00.000+02:00',
dateEnd: '2021-04-14T14:45:00.000+02:00',
name: '',
},
{
id: 'NDdkMGI0ZjItMjkxMC0wYWI1LTQ0YWMtNDY3NTdkZTE2Njg3',
blockName: '',
code: 'SO',
name: 'Engelska',
category: 'Samhällsorienterande ämnen',
blockName: '',
dayOfWeek: 3,
location: '303',
teacher: 'HRr',
@ -1320,12 +1337,14 @@ export const timetable = (child: Skola24Child): TimetableEntry[] => {
timeStart: '10:05:00',
dateStart: '2021-04-14T10:05:00.000+02:00',
dateEnd: '2021-04-14T11:00:00.000+02:00',
name: '',
},
{
id: 'ZTI2ZDgyNWUtM2ZlOS0wZDVmLTY5NTctNGYzZThjMTMxOTdh',
code: 'NO',
name: 'Naturorienterande ämnen',
category: '',
comment: 'a)',
blockName: '',
code: 'NO a)',
dayOfWeek: 3,
location: '307',
teacher: 'TBo',
@ -1333,12 +1352,13 @@ export const timetable = (child: Skola24Child): TimetableEntry[] => {
timeStart: '12:50:00',
dateStart: '2021-04-14T12:50:00.000+02:00',
dateEnd: '2021-04-14T13:50:00.000+02:00',
name: '',
},
{
id: 'NzMxNjczNGMtMmZmZi0wM2YzLTU0ZjMtODdjOTAwYzIwNTUw',
blockName: '',
code: 'Lunch',
name: 'Lunch',
category: '',
blockName: '',
dayOfWeek: 3,
location: 'Ö5',
teacher: '',
@ -1346,12 +1366,13 @@ export const timetable = (child: Skola24Child): TimetableEntry[] => {
timeStart: '12:15:00',
dateStart: '2021-04-14T12:15:00.000+02:00',
dateEnd: '2021-04-14T12:40:00.000+02:00',
name: '',
},
{
id: 'MWRkZjhlZTktNTBmMC0wZjNhLTQ1OTgtMWJkOWM3MjI2NWQ4',
blockName: '',
code: 'SV',
name: 'Svenska',
category: '',
blockName: '',
dayOfWeek: 3,
location: '303',
teacher: 'JCa',
@ -1359,12 +1380,14 @@ export const timetable = (child: Skola24Child): TimetableEntry[] => {
timeStart: '11:20:00',
dateStart: '2021-04-14T11:20:00.000+02:00',
dateEnd: '2021-04-14T12:05:00.000+02:00',
name: '',
},
{
id: 'NzM2Mjc2ZTYtY2JlYy0wOTc1LTU1ZGYtNjMwZjhjZWVjNjgy',
code: 'MA',
name: 'Matematik',
category: '',
comment: 'a)',
blockName: '',
code: 'MA a)',
dayOfWeek: 3,
location: '307',
teacher: 'CBr',
@ -1372,12 +1395,13 @@ export const timetable = (child: Skola24Child): TimetableEntry[] => {
timeStart: '15:00:00',
dateStart: '2021-04-14T15:00:00.000+02:00',
dateEnd: '2021-04-14T15:45:00.000+02:00',
name: '',
},
{
id: 'YWNlZmEzZjYtM2EwNC0wYWY3LTU1N2MtMDBlMTA4MDQzMzRl',
blockName: '',
code: 'MU',
name: 'Musik',
category: '',
blockName: '',
dayOfWeek: 3,
location: '504',
teacher: 'KBj',
@ -1385,12 +1409,13 @@ export const timetable = (child: Skola24Child): TimetableEntry[] => {
timeStart: '08:15:00',
dateStart: '2021-04-14T08:15:00.000+02:00',
dateEnd: '2021-04-14T09:00:00.000+02:00',
name: '',
},
{
id: 'NDc4MThmMDYtYmYxYi0wZDBkLTdhNmItZGVjMjY3OWY3MmYz',
blockName: '',
code: 'IDH',
name: 'Idrott & Hälsa',
category: '',
blockName: '',
dayOfWeek: 4,
location: 'Fjärr',
teacher: 'AKö,CSv,HAl',
@ -1398,12 +1423,13 @@ export const timetable = (child: Skola24Child): TimetableEntry[] => {
timeStart: '14:35:00',
dateStart: '2021-04-15T14:35:00.000+02:00',
dateEnd: '2021-04-15T15:45:00.000+02:00',
name: '',
},
{
id: 'ZjQyZjNkOWItYWMzZi0wYWRhLTQ3YzItNTZiNTJkOTRmY2Iy',
blockName: '',
code: 'M2FR',
name: 'Franska',
category: 'Moderna språk, språkval',
blockName: '',
dayOfWeek: 4,
location: 'Fjärr',
teacher: 'DNi',
@ -1411,12 +1437,14 @@ export const timetable = (child: Skola24Child): TimetableEntry[] => {
timeStart: '11:10:00',
dateStart: '2021-04-15T11:10:00.000+02:00',
dateEnd: '2021-04-15T11:55:00.000+02:00',
name: '',
},
{
id: 'YzQ2NWZlOWMtYzM3ZC0wYzBlLTQzNTQtODMyYmU3ODcxMDQ3',
code: 'MTID',
name: 'MTID',
category: 'Okänd',
comment: 'Arbetslagsråd 6C',
blockName: '',
code: 'MTID Arbetslagsråd 7C',
dayOfWeek: 4,
location: 'Fjärr',
teacher: 'JCa,CBr',
@ -1424,12 +1452,13 @@ export const timetable = (child: Skola24Child): TimetableEntry[] => {
timeStart: '09:15:00',
dateStart: '2021-04-15T09:15:00.000+02:00',
dateEnd: '2021-04-15T10:00:00.000+02:00',
name: '',
},
{
id: 'YzMwMGY0YzAtNjhjNi0wYzY0LTU1MjctODg2MWQ4ZTRmZTI2',
blockName: '',
code: 'MU',
name: 'Musik',
category: '',
blockName: '',
dayOfWeek: 4,
location: 'Fjärr',
teacher: 'KBj',
@ -1437,12 +1466,13 @@ export const timetable = (child: Skola24Child): TimetableEntry[] => {
timeStart: '10:10:00',
dateStart: '2021-04-15T10:10:00.000+02:00',
dateEnd: '2021-04-15T10:55:00.000+02:00',
name: '',
},
{
id: 'ZDNlNTFhMGUtYWFlYy0wOGI0LTVlMGItOTc0MzFiZmIwODcx',
blockName: '',
code: 'Lunch',
name: 'Lunch',
category: 'Okänd',
blockName: '',
dayOfWeek: 4,
location: 'Fjärr',
teacher: '',
@ -1450,12 +1480,13 @@ export const timetable = (child: Skola24Child): TimetableEntry[] => {
timeStart: '12:00:00',
dateStart: '2021-04-15T12:00:00.000+02:00',
dateEnd: '2021-04-15T12:25:00.000+02:00',
name: '',
},
{
id: 'MDRiZWMyODMtNjEwZC0wZDYwLTRlOWItYTY1MjAwZTc0YTZm',
blockName: '',
code: 'SO',
name: 'Samhällsorienterande ämnen',
category: '',
blockName: '',
dayOfWeek: 4,
location: 'Fjärr',
teacher: 'HRr',
@ -1463,12 +1494,14 @@ export const timetable = (child: Skola24Child): TimetableEntry[] => {
timeStart: '12:35:00',
dateStart: '2021-04-15T12:35:00.000+02:00',
dateEnd: '2021-04-15T13:10:00.000+02:00',
name: '',
},
{
id: 'YTA0ZTA2NTktYTU5MS0wMTFmLTVlYWYtNWM1MTgxNDJlMDcy',
code: 'EN',
name: 'Engelska',
category: '',
comment: 'a)',
blockName: '',
code: 'EN a)',
dayOfWeek: 4,
location: 'Fjärr',
teacher: 'TPe',
@ -1476,12 +1509,13 @@ export const timetable = (child: Skola24Child): TimetableEntry[] => {
timeStart: '13:35:00',
dateStart: '2021-04-15T13:35:00.000+02:00',
dateEnd: '2021-04-15T14:20:00.000+02:00',
name: '',
},
{
id: 'OGJhN2MxYTYtMDQ4NS0wNWNhLTUwZWEtZDQ5YzQyMzFhYzc5',
blockName: '',
code: 'Lunch',
name: 'Lunch',
category: 'Okänd',
blockName: '',
dayOfWeek: 5,
location: 'Ö5',
teacher: '',
@ -1489,12 +1523,14 @@ export const timetable = (child: Skola24Child): TimetableEntry[] => {
timeStart: '11:40:00',
dateStart: '2021-04-16T11:40:00.000+02:00',
dateEnd: '2021-04-16T12:05:00.000+02:00',
name: '',
},
{
id: 'ZmUwMGEwM2QtNTExMy0wODliLTY1ZGEtODM0YmRjNjc1NDIw',
code: 'MA',
name: 'Matematik',
category: '',
comment: 'a)',
blockName: '',
code: 'MA a)',
dayOfWeek: 5,
location: '303',
teacher: 'CBr',
@ -1502,12 +1538,14 @@ export const timetable = (child: Skola24Child): TimetableEntry[] => {
timeStart: '13:15:00',
dateStart: '2021-04-16T13:15:00.000+02:00',
dateEnd: '2021-04-16T14:00:00.000+02:00',
name: '',
},
{
id: 'Y2IwYjYzZDEtODAxYi0wMTNjLTRjNDMtMDFlODgzMmY4MWEy',
code: 'MU',
name: 'Musik',
category: '',
comment: 'a)',
blockName: '',
code: 'MU a)',
dayOfWeek: 5,
location: '510',
teacher: 'KBj',
@ -1515,12 +1553,14 @@ export const timetable = (child: Skola24Child): TimetableEntry[] => {
timeStart: '12:20:00',
dateStart: '2021-04-16T12:20:00.000+02:00',
dateEnd: '2021-04-16T13:05:00.000+02:00',
name: '',
},
{
id: 'N2JkMGFiOTYtMjI5OC0wMjZiLTc3OGEtN2JkN2Q4MDZkNTEy',
code: 'SL',
name: 'Slöjd',
category: '',
comment: 'tmtx)',
blockName: '',
code: 'SL tmtx)',
dayOfWeek: 5,
location: '860',
teacher: 'EAl',
@ -1528,12 +1568,13 @@ export const timetable = (child: Skola24Child): TimetableEntry[] => {
timeStart: '14:10:00',
dateStart: '2021-04-16T14:10:00.000+02:00',
dateEnd: '2021-04-16T15:10:00.000+02:00',
name: '',
},
{
id: 'NzkxMjE3MDctMWExNS0wN2RmLTQwMzQtNTEyZTczZjQyZTUw',
blockName: '',
code: 'SV',
name: 'Svenska',
category: '',
blockName: '',
dayOfWeek: 5,
location: '303',
teacher: 'JCa',
@ -1541,12 +1582,13 @@ export const timetable = (child: Skola24Child): TimetableEntry[] => {
timeStart: '09:20:00',
dateStart: '2021-04-16T09:20:00.000+02:00',
dateEnd: '2021-04-16T10:35:00.000+02:00',
name: '',
},
{
id: 'ZTU1ZDQxNzQtN2Q3Yy0wMDMxLTY2ZmYtZmIyNGM5MjM3ZTRj',
blockName: '',
code: 'MA',
name: 'Matematik',
category: '',
blockName: '',
dayOfWeek: 5,
location: '303',
teacher: 'CBr',
@ -1554,7 +1596,6 @@ export const timetable = (child: Skola24Child): TimetableEntry[] => {
timeStart: '10:40:00',
dateStart: '2021-04-16T10:40:00.000+02:00',
dateEnd: '2021-04-16T11:35:00.000+02:00',
name: '',
}
]
}

View File

@ -118,6 +118,7 @@ describe('Timetable', () => {
expect(entry.id).toEqual('ZTQ1NWE0N2EtNzAwOS0wZTAzLTQ1ZDYtNTA1NWI4Y2JhNDYw')
expect(entry.code).toEqual('BL')
expect(entry.name).toEqual('Bild')
expect(entry.teacher).toEqual('KUr')
expect(entry.location).toEqual('221')
expect(entry.timeStart).toEqual('09:40:00')

View File

@ -1,3 +1,4 @@
import parse from '@skolplattformen/curriculum'
import { DateTime } from 'luxon'
import { TimetableEntry } from '../types'
@ -41,9 +42,9 @@ interface EntryParser {
export const timetableEntry: EntryParser = ({
guidId, texts: [code, teacher, location], timeStart, timeEnd, dayOfWeekNumber, blockName,
}, year, week) => ({
...parse(code),
id: guidId,
blockName,
code,
dayOfWeek: dayOfWeekNumber,
location,
teacher,
@ -51,7 +52,6 @@ export const timetableEntry: EntryParser = ({
timeStart,
dateStart: calculateDate(year, week, dayOfWeekNumber, timeStart),
dateEnd: calculateDate(year, week, dayOfWeekNumber, timeEnd),
name: ''
})
export const timetable = (response: TimetableResponse, year: number, week: number) => {

View File

@ -1,3 +1,5 @@
import { Subject } from '@skolplattformen/curriculum'
export interface Cookie {
name: string
value: string
@ -196,10 +198,8 @@ export interface Skola24Child {
export type SSOSystem = 'TimetableViewer'
export interface TimetableEntry {
export interface TimetableEntry extends Subject {
id: string
code: string
name: string
teacher: string
location: string
timeStart: string

View File

@ -42,6 +42,7 @@
"typescript": "^4.1.3"
},
"dependencies": {
"@skolplattformen/curriculum": "^1.1.0",
"@types/he": "^1.1.1",
"camelcase-keys": "^6.2.2",
"change-case": "^4.1.2",

View File

@ -1,5 +1,5 @@
{
"extends": "./tsconfig.json",
"include": ["**/*.ts", "**/*.js"],
"exclude": ["node_modules"]
}
"extends": "./tsconfig.json",
"include": ["**/*.ts", "**/*.js"],
"exclude": ["node_modules"]
}

View File

@ -523,6 +523,11 @@
dependencies:
"@sinonjs/commons" "^1.7.0"
"@skolplattformen/curriculum@^1.1.0":
version "1.1.0"
resolved "https://registry.yarnpkg.com/@skolplattformen/curriculum/-/curriculum-1.1.0.tgz#06ca1e198205fcf19416e465a550ce10174aa6ef"
integrity sha512-V0LdRbtonkjHeLBT+uLG7kYlK1OgSXZvs3Ge5kfEkHRFeZbbHqW7Mvb09DtBT1xrsH4GBRPCyM5HVd7eN1koMA==
"@types/babel__core@^7.0.0", "@types/babel__core@^7.1.7":
version "7.1.12"
resolved "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.12.tgz"