The weekly story
Five slides Lala writes about the last seven days (today and the six before it) for
one exam type: week HAFTAN, time ZAMANIN NEREYE GİTTİ, deneme DENEME, subjects
DERSLER, next SIRADAKİ ADIM. The numbers are computed on the server and the model only
writes the text. A slide whose text breaks the rules (over 240 characters, an
exclamation mark, an emoji, an em dash) gets a plain template text instead, so a bad
model answer never fails the read.
suggestion, on the last slide, is computed, not written: each item is a valid
PlanBlockInput once the client adds a date. panels carries only what the client
cannot compute itself.
The text is cached per exam type and ISO week, and written again only when the numbers under it change. 204 when the seven days hold no done block and no paper of the exam type: the ÖZETLE button then stays hidden.
curl --request GET \
--url https://client-api.lala.ist/api/journey/weekly-story \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://client-api.lala.ist/api/journey/weekly-story', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://client-api.lala.ist/api/journey/weekly-story"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"range": {
"from": "<string>",
"to": "<string>"
},
"slides": [
{
"key": "week",
"title": "<string>",
"text": "<string>",
"suggestion": [
{
"subject": "<string>",
"activity": "questions",
"durationMin": 362,
"count": 4503599627370496,
"topic": "<string>"
}
]
}
],
"panels": {
"kayip": [
{
"topic": "<string>",
"subject": "<string>",
"yanlis": 0,
"bos": 0
}
],
"surenet": [
{
"subject": "<string>",
"minutes": 0,
"delta": 123
}
],
"buhafta": {
"items": [
{
"label": "<string>",
"count": 0,
"durationMin": 0
}
],
"totalMin": 0
}
}
}{
"error": "<string>",
"issues": [
{
"path": "<string>",
"message": "<string>"
}
]
}{
"error": "<string>",
"issues": [
{
"path": "<string>",
"message": "<string>"
}
]
}Authorizations
Supabase access token: Authorization: Bearer <token>
Query Parameters
One scored paper. TYT and AYT nets are never summed.
TYT, AYT, LGS curl --request GET \
--url https://client-api.lala.ist/api/journey/weekly-story \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://client-api.lala.ist/api/journey/weekly-story', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://client-api.lala.ist/api/journey/weekly-story"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"range": {
"from": "<string>",
"to": "<string>"
},
"slides": [
{
"key": "week",
"title": "<string>",
"text": "<string>",
"suggestion": [
{
"subject": "<string>",
"activity": "questions",
"durationMin": 362,
"count": 4503599627370496,
"topic": "<string>"
}
]
}
],
"panels": {
"kayip": [
{
"topic": "<string>",
"subject": "<string>",
"yanlis": 0,
"bos": 0
}
],
"surenet": [
{
"subject": "<string>",
"minutes": 0,
"delta": 123
}
],
"buhafta": {
"items": [
{
"label": "<string>",
"count": 0,
"durationMin": 0
}
],
"totalMin": 0
}
}
}{
"error": "<string>",
"issues": [
{
"path": "<string>",
"message": "<string>"
}
]
}{
"error": "<string>",
"issues": [
{
"path": "<string>",
"message": "<string>"
}
]
}