@@ -18,76 +18,10 @@ object ActionHeader {
1818
1919 implicit val formatOptActionHeader : OFormat [Option [ActionHeader ]] = {
2020
21- val appendFormat = {
22- val format = Json .format[Append ]
23- val reads = format orElse new Reads [Append ] {
24- def reads (json : JsValue ): JsResult [Append ] = {
25-
26- def metadata = {
27- (json \ " metadata" ).validate[JsObject ] match {
28- case JsSuccess (a, _) => a.validate[HeaderMetadata ]
29- case _ : JsError => HeaderMetadata .empty.pure[JsResult ]
30- }
31- }
32-
33- for {
34- range <- (json \ " range" ).validate[SeqRange ]
35- origin <- (json \ " origin" ).validateOpt[Origin ]
36- version <- (json \ " version" ).validateOpt[Version ]
37- payloadType <- (json \ " payloadType" ).validate[PayloadType .BinaryOrJson ]
38- metadata <- metadata
39- } yield {
40- Append (range, origin, version.getOrElse(Version .obsolete), payloadType, metadata)
41- }
42- }
43- }
44- OFormat (reads, format)
45- }
46- val deleteFormat = {
47- val format = Json .format[Delete ]
48- val reads = format orElse new Reads [Delete ] {
49- def reads (json : JsValue ): JsResult [Delete ] = {
50- for {
51- to <- (json \ " to" ).validate[SeqNr ]
52- origin <- (json \ " origin" ).validateOpt[Origin ]
53- version <- (json \ " version" ).validateOpt[Version ]
54- } yield {
55- Delete (to.toDeleteTo, origin, version.getOrElse(Version .obsolete))
56- }
57- }
58- }
59- OFormat (reads, format)
60- }
61- val purgeFormat = {
62-
63- val format = Json .format[Purge ]
64- val reads = format orElse new Reads [Purge ] {
65- def reads (json : JsValue ): JsResult [Purge ] = {
66- for {
67- origin <- (json \ " origin" ).validateOpt[Origin ]
68- version <- (json \ " version" ).validateOpt[Version ]
69- } yield {
70- Purge (origin, version.getOrElse(Version .obsolete))
71- }
72- }
73- }
74- OFormat (reads, format)
75- }
76- val readFormat = {
77- val format = Json .format[Mark ]
78- val reads = format orElse new Reads [Mark ] {
79- def reads (json : JsValue ): JsResult [Mark ] = {
80- for {
81- id <- (json \ " id" ).validate[String ]
82- origin <- (json \ " origin" ).validateOpt[Origin ]
83- version <- (json \ " version" ).validateOpt[Version ]
84- } yield {
85- Mark (id, origin, version.getOrElse(Version .obsolete))
86- }
87- }
88- }
89- OFormat (reads, format)
90- }
21+ val appendFormat = Json .using[Json .WithDefaultValues ].format[Append ]
22+ val deleteFormat = Json .using[Json .WithDefaultValues ].format[Delete ]
23+ val purgeFormat = Json .using[Json .WithDefaultValues ].format[Purge ]
24+ val readFormat = Json .using[Json .WithDefaultValues ].format[Mark ]
9125
9226 new OFormat [Option [ActionHeader ]] {
9327
@@ -138,25 +72,25 @@ object ActionHeader {
13872 final case class Append (
13973 range : SeqRange ,
14074 origin : Option [Origin ],
141- version : Version ,
75+ version : Version = Version .obsolete ,
14276 payloadType : PayloadType .BinaryOrJson ,
143- metadata : HeaderMetadata ,
77+ metadata : HeaderMetadata = HeaderMetadata .empty ,
14478 ) extends AppendOrDelete
14579
14680 final case class Delete (
14781 to : DeleteTo ,
14882 origin : Option [Origin ],
149- version : Version ,
83+ version : Version = Version .obsolete ,
15084 ) extends AppendOrDelete
15185
15286 final case class Purge (
15387 origin : Option [Origin ],
154- version : Version ,
88+ version : Version = Version .obsolete ,
15589 ) extends AppendOrDelete
15690
15791 final case class Mark (
15892 id : String ,
15993 origin : Option [Origin ],
160- version : Version ,
94+ version : Version = Version .obsolete ,
16195 ) extends ActionHeader
16296}
0 commit comments