diff --git a/lib/fakeData.ts b/lib/fakeData.ts index 6fd327ee..b3591866 100644 --- a/lib/fakeData.ts +++ b/lib/fakeData.ts @@ -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: '', } ] } diff --git a/lib/parse/__tests__/timetable.test.ts b/lib/parse/__tests__/timetable.test.ts index eb351d4e..40a9ba85 100644 --- a/lib/parse/__tests__/timetable.test.ts +++ b/lib/parse/__tests__/timetable.test.ts @@ -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') diff --git a/lib/parse/timetable.ts b/lib/parse/timetable.ts index 68327ff3..e2a3197d 100644 --- a/lib/parse/timetable.ts +++ b/lib/parse/timetable.ts @@ -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) => { diff --git a/lib/types.ts b/lib/types.ts index 5e891cd9..4e6511be 100644 --- a/lib/types.ts +++ b/lib/types.ts @@ -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 diff --git a/package.json b/package.json index 95bdef0d..21dd8b61 100644 --- a/package.json +++ b/package.json @@ -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", diff --git a/tsconfig.eslint.json b/tsconfig.eslint.json index 506eeaf6..36ca13bb 100644 --- a/tsconfig.eslint.json +++ b/tsconfig.eslint.json @@ -1,5 +1,5 @@ { - "extends": "./tsconfig.json", - "include": ["**/*.ts", "**/*.js"], - "exclude": ["node_modules"] - } \ No newline at end of file + "extends": "./tsconfig.json", + "include": ["**/*.ts", "**/*.js"], + "exclude": ["node_modules"] +} \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index 50dcd39d..c8038aed 100644 --- a/yarn.lock +++ b/yarn.lock @@ -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"