From 826b7453c425db8553428ce48e38f2b3367cdcfa Mon Sep 17 00:00:00 2001 From: Emil Lindqvist Date: Sat, 13 Nov 2021 08:59:42 +0100 Subject: [PATCH] Make temporary change to highlight cookie issue --- apps/skolplattformen-sthlm/App.js | 4 ++-- libs/api-hjarntorget/lib/apiHjarntorget.ts | 5 +++-- libs/api-hjarntorget/lib/index.ts | 7 +++++-- libs/api-hjarntorget/lib/loginStatus.ts | 2 +- libs/api-hjarntorget/lib/parse/parsers.ts | 1 - libs/api-hjarntorget/run.js | 6 +++--- libs/api/lib/cookies.ts | 9 ++++++++- libs/api/lib/fetcher.ts | 1 - 8 files changed, 22 insertions(+), 13 deletions(-) diff --git a/apps/skolplattformen-sthlm/App.js b/apps/skolplattformen-sthlm/App.js index faae0b0b..cd2e6d18 100644 --- a/apps/skolplattformen-sthlm/App.js +++ b/apps/skolplattformen-sthlm/App.js @@ -21,7 +21,7 @@ import { darkTheme, lightTheme } from './design/themes' import useSettingsStorage from './hooks/useSettingsStorage' import { translations } from './utils/translation' -const apiSkolplattformen = initSkolplattformen(fetch, CookieManager) +//const apiSkolplattformen = initSkolplattformen(fetch, CookieManager) const apiHjarntorget = initHjarntorget(fetch, CookieManager) const reporter = __DEV__ @@ -70,7 +70,7 @@ export default () => { return ( diff --git a/libs/api-hjarntorget/lib/apiHjarntorget.ts b/libs/api-hjarntorget/lib/apiHjarntorget.ts index 8b33780e..e0266db3 100644 --- a/libs/api-hjarntorget/lib/apiHjarntorget.ts +++ b/libs/api-hjarntorget/lib/apiHjarntorget.ts @@ -18,7 +18,7 @@ import { toMarkdown, Api, URLSearchParams, LoginStatusChecker, CalendarItem, Fetcher, FetcherOptions, wrap -} from '@skolplattformen/api' +} from '../../api/lib' import { checkStatus } from './loginStatus' import { extractMvghostRequestBody, parseCalendarItem } from './parse/parsers' import { @@ -89,6 +89,7 @@ export class ApiHjarntorget extends EventEmitter implements Api { options?: FetcherOptions ) { super() + this.fetch = wrap(fetch, options); this.realFetcher = this.fetch; this.cookieManager = cookieManager @@ -427,7 +428,7 @@ export class ApiHjarntorget extends EventEmitter implements Api { } }) - console.log("start polling") + console.log("start polling", (beginBankIdResponse as any).url) const statusChecker = checkStatus(this.fetch, verifyUrlBase((beginBankIdResponse as any).url)) diff --git a/libs/api-hjarntorget/lib/index.ts b/libs/api-hjarntorget/lib/index.ts index 566e5a5b..380cfd96 100644 --- a/libs/api-hjarntorget/lib/index.ts +++ b/libs/api-hjarntorget/lib/index.ts @@ -1,8 +1,11 @@ import { ApiHjarntorget } from './apiHjarntorget' -import { Api, FetcherOptions, Fetch, RNCookieManager, +import { FetcherOptions } from '../../api/lib/fetcher' +import { Fetch } from '../../api/lib/types' +import { Api } from '../../api/lib/api' +import { RNCookieManager, ToughCookieJar, wrapReactNativeCookieManager, - wrapToughCookie } from '@skolplattformen/api' + wrapToughCookie } from '../../api/lib/cookies' const init = ( fetchImpl: Fetch, diff --git a/libs/api-hjarntorget/lib/loginStatus.ts b/libs/api-hjarntorget/lib/loginStatus.ts index 2b095601..1c9ad778 100644 --- a/libs/api-hjarntorget/lib/loginStatus.ts +++ b/libs/api-hjarntorget/lib/loginStatus.ts @@ -1,5 +1,5 @@ import { EventEmitter } from 'events' -import { LoginStatusChecker, Fetcher} from '@skolplattformen/api' +import { LoginStatusChecker, Fetcher} from '../../api/lib' import { extractAuthGbgLoginRequestBody, extractHjarntorgetSAMLLogin diff --git a/libs/api-hjarntorget/lib/parse/parsers.ts b/libs/api-hjarntorget/lib/parse/parsers.ts index 2bb6abd4..8e961550 100644 --- a/libs/api-hjarntorget/lib/parse/parsers.ts +++ b/libs/api-hjarntorget/lib/parse/parsers.ts @@ -1,6 +1,5 @@ import * as html from 'node-html-parser' import { decode } from 'he' -import { CalendarItem } from '..' // TODO: Move this into the parse folder and convert it to follow the pattern of other parsers (include tests). diff --git a/libs/api-hjarntorget/run.js b/libs/api-hjarntorget/run.js index 21bda1e5..66273708 100644 --- a/libs/api-hjarntorget/run.js +++ b/libs/api-hjarntorget/run.js @@ -23,7 +23,7 @@ function requestLogger(httpModule) { const path = require('path') const fs = require('fs') const { inspect } = require('util') - const init = require('./dist/api-hjarntorget/lib').default + const init = require('./dist/libs/api-hjarntorget/lib').default const [, , personalNumber] = process.argv @@ -78,13 +78,13 @@ function requestLogger(httpModule) { async function run() { const cookieJar = new CookieJar() - const fetch = fetchCookie(nodeFetch, cookieJar) + const fetch = nodeFetch //fetchCookie(nodeFetch, cookieJar) try { const api = init(fetch, cookieJar, { record }) console.log("inited...") - api.on('login', async () => { + console.log("Loged in!") await api.getUser() const children = await api.getChildren() diff --git a/libs/api/lib/cookies.ts b/libs/api/lib/cookies.ts index cb8bf2d9..fe9f01aa 100644 --- a/libs/api/lib/cookies.ts +++ b/libs/api/lib/cookies.ts @@ -98,21 +98,28 @@ export interface RNCookieManager { export const wrapReactNativeCookieManager = ( rnc: RNCookieManager ): CookieManager => ({ - clearAll: () => rnc.clearAll().then(), + clearAll: () => { + console.log("clearAll") + return rnc.clearAll().then() + }, getCookieString: async (url) => { const cookies = await rnc.get(url) + console.log("getCookieString", url, cookies) return Object.values(cookies) .map((c) => `${c.name}=${c.value}`) .join('; ') }, getCookies: async (url) => { const cookies = await rnc.get(url) + console.log("getCookies", url, cookies) return Object.values(cookies) }, setCookie: async (cookie, url) => { + console.log("setting cookie", url, cookie) await rnc.setFromResponse(url, serialize(cookie)) }, setCookieString: async (cookieString, url) => { + console.log("setting cookieString", url, cookieString) await rnc.setFromResponse(url, cookieString) }, }) diff --git a/libs/api/lib/fetcher.ts b/libs/api/lib/fetcher.ts index cc46b357..787ead05 100644 --- a/libs/api/lib/fetcher.ts +++ b/libs/api/lib/fetcher.ts @@ -66,7 +66,6 @@ export default function wrap( }, } const response = await fetch(url, config) - const wrapMethod = (res: Response, methodName: string): void => { // @ts-ignore const original = res[methodName].bind(res)