kolplattformen / skolplattformen

The source code to the civic tech project Öppna Skolplattformen.
https://skolplattformen.org
Apache License 2.0
795 stars 176 forks source link

feat: 🎾 Fix wrong child response by queuing calls together #615

Closed whyer closed 2 years ago

whyer commented 2 years ago

Det hÀr Àr ett försökt till att fixa problemet med att stadens API skickar fel svar tillbaka nÀr man har barn i skola och förskola.

Jag har byggt en "QueueFetcher" som köar upp anrop för barn och exeverar dem tillsammans. Efter nÄgra sekunder byter man till nÀsta kö för nÀsta barn och exekverar dem.

Varför???

Det som hÀnder Àr att api:t inte bryr som om parametern childId i api-anropet. Utan api:t lagrar state pÄ servern dÀr man sÀtter om vilket barn som api:t ska ge svar tillbaka med med ett "SelectChild" anrop.

För att göra allt lÀttare sÄ verkar det finnas ett cache-bugg ocksÄ, sÄ trots att man gör ett SelectChild anrop sÄ kan man fÄ fel i ett antal anrop innan det stabiliserar sig pÄ det valda barnet.

Den hÀr buggen har kommit och gÄtt under Äret. Vi mÀrkte den under vÄren 2021 och hade en fix klar. DÄ fixade staden buggen och all state pÄ servern försvann. Under hösten kom buggen tillbaka men den gamla fixen verkade inte funka lÀngre. Vi kunde komma runt det genom att kolla att svaret var rÀtt och prova om nÄgra gÄnger. Det funkade hysat.

Nu i januari 2022 kom buggen tillbaka vÀrre Àn nÄgonsin pÄ stadens sida och nu verkar det funka nÄgotsÄnÀr med SelectChild.