Closed elsand closed 9 months ago
Håndtere oppdateringer på dialoger som har datoer i fortid
Som diskutert må vi ha andre valideringsregler for dette på update vs create. Create kan løses gjennom nivå 2-regler (IsInFuture()) mens update må forholde seg til det som allerede ligger i databasen (nivå 3) og sjekke om den er forsøk endret.
Vi legger opp til at alle opprettelse/oppdateringer som gjøres på "barne-entiteter" (pt. er det ikke definert noen) skal håndteres på samme måte som PUT på aggregatet, slik at vi kan ha én Update-kommando i applikasjonslaget.
Valideringsregler
p, a, br, em, strong, ul, ol, li
href
påa
href
må begynne medhttps://
Org
skal ikke kunne oppgis, men utledes av token (settes til dummy-verdi inntil #44 er implementert)Party
skal starte med enten/org/
eller/person/
og inneholde hhv et organisasjonsnummer eller et f-eller d-nummer. Kun sjekk well-formed-ness (mod 11-sjekk for orgnr og f/dnr)ServiceResource
må ha prefiksurn:altinn:resource:
, og identifikatoren må matche en ressurs som finnes i ressursregisteret (se API)relatedDialogElementId
enten finnes i request payload, eller finnes i databasen ved updaterelatedActivityId
/dialogElementId
i activity enten finnes i request payload, eller finnes i databasen ved updateUri.IsWellFormedUri(uri, UriKind.Absolute
)Autorisasjon
Se #44
Akseptansekriterier
GITT en førespørsel til Dialogporten NÅR forespørselen er en POST på dialog-endepunktet SÅ skal forespørselen autoriseres og valideres jf kravene over OG createtAt settes til gjeldende tidspunkt OG lagres i databasen OG returnere 204 Created, med GUID for den opprettede dialogen som en JSON-streng i body og en Location-header til dialogen
GITT en førespørsel til Dialogporten NÅR forespørselen er en PUT på dialog-endepunktet SÅ skal forespørselen referere en dialog som allerede eksisterer OG valideres jf kravene over OG aktivitetshistorikken må være tom (denne kan ikke overskrives) OG updatedAt settes til gjeldende tidspunkt OG endringen lagres i databasen OG returnere 200 OK med Location-header til dialog
GITT en førespørsel til Dialogporten NÅR forespørselen er en PUT på dialog-endepunktet og det oppgis en
If-Match
header som ikke matcherETag
på dialog SÅ skal forespørselen feile med 412 Precondition Failed (se #109)GITT en førespørsel til Dialogporten NÅR forespørselen er en DELETE på dialog-endepunktet SÅ skal forespørselen referere en dialog som allerede eksisterer OG vallideres jf kravene over OG deletedAt settes til gjeldenden tidspunkt samt deleted=true