summaryrefslogtreecommitdiff
path: root/src/core/SplusApi.ts
blob: 47b5a70e20066abe8681e992eab1f4103f3a814d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import * as request from 'request-promise-native';
import {SplusParser} from './SplusParser';
import {ILecture} from './ILecture';

export class SplusApi {
    private static _base_uri = 'http://splus.ostfalia.de/semesterplan123.php';

    private static splusRequest(course: string, weekOfYear: number): PromiseLike<string> {
        return request({
            method: 'POST',
            uri: this._base_uri,
            qs: {
                identifier: course,
            },
            formData: {
                weeks: weekOfYear.toString(),
            },
        });
    }

    static async getData(course: string, weekOfYear: number): Promise<ILecture[]> {
        const data = await this.splusRequest(course, weekOfYear);
        const lectures = new SplusParser(data).getLectures();
        return lectures;
    }
}