Rename skolplattfomen api

This commit is contained in:
Emil Lindqvist 2021-10-11 09:45:36 +02:00 committed by Viktor Sarström
parent a9603422c8
commit aeeab7feb6
4 changed files with 39 additions and 6 deletions

View File

@ -1,5 +1,5 @@
import init from './'
import { Api } from './api'
import { ApiSkolplattformen } from './api'
import { Fetch, Headers, Response } from '../../api/lib/types'
import CookieManager from '@react-native-cookies/cookies'
@ -7,7 +7,7 @@ describe('api', () => {
let fetch: jest.Mocked<Fetch>
let response: jest.Mocked<Response>
let headers: jest.Mocked<Headers>
let api: Api
let api: ApiSkolplattformen
beforeEach(() => {
headers = { get: jest.fn() }
response = {

View File

@ -49,7 +49,7 @@ interface SSOSystems {
[name: string]: boolean | undefined
}
export class Api extends EventEmitter {
export class ApiSkolplattformen extends EventEmitter {
private fetch: Fetcher
private personalNumber?: string

View File

@ -1,4 +1,5 @@
import { Api } from './api'
import { ApiSkolplattformen } from './api'
import { Api } from '../../api/lib/api'
import { FetcherOptions } from '../../api/lib/fetcher'
import { Fetch } from '../../api/lib/types'
import {
@ -8,7 +9,6 @@ import {
wrapToughCookie,
} from '../../api/lib/cookies'
export { Api, FetcherOptions }
export * from '../../api/lib/types'
export { LoginStatusChecker } from '../../api/lib/loginStatus'
@ -21,7 +21,7 @@ const init = (
const cookieManager = ((cookieManagerImpl as RNCookieManager).get)
? wrapReactNativeCookieManager(cookieManagerImpl as RNCookieManager)
: wrapToughCookie(cookieManagerImpl as ToughCookieJar)
return new Api(fetchImpl, cookieManager, options)
return new ApiSkolplattformen(fetchImpl, cookieManager, options)
}
export default init

33
libs/api/lib/api.ts Normal file
View File

@ -0,0 +1,33 @@
import { Language } from '@skolplattformen/curriculum/dist/translations'
import { DateTime } from 'luxon'
import { LoginStatusChecker } from './loginStatus'
import {
CalendarItem,
Classmate,
MenuItem,
NewsItem,
Notification,
User,
Skola24Child,
EtjanstChild,
TimetableEntry,
ScheduleItem
} from './types'
export interface Api {
getPersonalNumber(): string | undefined
login(personalNumber?: string): Promise<LoginStatusChecker>
setSessionCookie(sessionCookie: string): Promise<void>
getUser(): Promise<User>
getChildren(): Promise<EtjanstChild[]>
getCalendar(child: EtjanstChild): Promise<CalendarItem[]>
getClassmates(child: EtjanstChild): Promise<Classmate[]>
getNews(child: EtjanstChild): Promise<NewsItem[]>
getNewsDetails(child: EtjanstChild, item: NewsItem): Promise<any>
getMenu(child: EtjanstChild): Promise<MenuItem[]>
getNotifications(child: EtjanstChild): Promise<Notification[]>
getSchedule(child: EtjanstChild, from: DateTime, to: DateTime): Promise<ScheduleItem[]>
getSkola24Children(): Promise<Skola24Child[]>
getTimetable(child: Skola24Child, week: number, year: number, lang: Language): Promise<TimetableEntry[]>
logout(): Promise<void>
}