# [Chantier] MVP upload photo via mobile (QR code) Diagramme de séquence des calls : ````mermaid sequenceDiagram participant czf as Cheerz Front participant czb as Cheerz Back participant fo as Fotom czf->>+czb: Fetch upload token czb-->>-czf: Return JWT for access to Fotom Note over czf: POST :/api/identified/:api_version/upload_photos_token czf->>+czb: Fetch generate QR-Code czb-->>-czf: Return QR-Code with string czf->>+fo: Call new endpoint on Fotom for upload Note over czf: POST :/api/v3/upload fo->>fo: Decode JWT fo-->>-czf: return 200 or 401 depend to decode action ```` Infos complémentaires : - les fronts s'occupent de générer le QR-code (dans ce cas, l'étape du Fetch generate QR-Code n'est pas necessaire) - Si ils ne peuvent pas le faire (alors on garde l'étape du Fetch generate QR-Code) Payload du JWT token : ````json { "user_id": 1, "upload_outside_session": true, "token": nil, "expired_at": "" //iso8601 } ```` Objet de réponse de Photo (sortie de Fotom): ````json { sha1: object.sha1, width_px: object.width_px, height_px: object.height_px, provider_tag: object.provider_tag, upload_outside_session: true or flase taken_at: object.taken_at, updated_at: object.updated_at, } ```` Payloads responses : ``` POST : /api/v2/identified/:lang/upload_photos_token { "token": "EB9B0AD1-9F63-4662-A0E9-C397BAEEC45C", "expired_at": "" //iso8601 } POST : /api/v3/upload HEADER : - Authorization Bearer :jwt_token // Payload is the same like v2 upload ```