Skip to content

Commit 5aeecfe

Browse files
Reflow
1 parent eb84f57 commit 5aeecfe

File tree

3 files changed

+41
-28
lines changed

3 files changed

+41
-28
lines changed

modules/core/src/main/scala/dev/guardrail/generators/ProtocolGenerator.scala

Lines changed: 21 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -346,16 +346,12 @@ object ProtocolGenerator {
346346
defaultPropertyRequirement,
347347
components
348348
)
349-
defn <- renderDTOClass(clsName.last, supportPackage, params, parents)
350349
encoder <- encodeModel(clsName.last, dtoPackage, params, parents)
351350
decoder <- decodeModel(clsName.last, dtoPackage, supportPackage, params, parents)
352351
tpe <- parseTypeName(clsName.last)
353352
fullType <- selectType(dtoPackage.foldRight(clsName)((x, xs) => xs.prepend(x)))
354353
staticDefns <- renderDTOStaticDefns(clsName.last, List.empty, encoder, decoder, params)
355-
result <-
356-
if (parents.isEmpty && props.isEmpty) (Left("Entity isn't model"): Either[String, ClassDefinition[L]]).pure[F]
357-
else {
358-
val nestedClasses = nestedDefinitions.flatTraverse {
354+
nestedClasses <- nestedDefinitions.flatTraverse {
359355
case classDefinition: ClassDefinition[L] =>
360356
for {
361357
widenClass <- widenClassDefinition(classDefinition.cls)
@@ -371,12 +367,13 @@ object ProtocolGenerator {
371367
widenCompanion <- companionDefinition.traverse(widenObjectDefinition)
372368
} yield List(widenClass) ++ widenCompanion.fold(enumDefinition.staticDefns.definitions)(List(_))
373369
}
374-
nestedClasses.map { v =>
375-
val finalStaticDefns = staticDefns.copy(definitions = staticDefns.definitions ++ v)
376-
tpe.toRight("Empty entity name").map(ClassDefinition[L](clsName.last, _, fullType, defn, finalStaticDefns, parents))
377-
}
378-
}
379-
} yield result
370+
defn <- renderDTOClass(clsName.last, supportPackage, params, parents)
371+
} yield {
372+
val finalStaticDefns = staticDefns.copy(definitions = staticDefns.definitions ++ nestedClasses)
373+
if (parents.isEmpty && props.isEmpty) Left("Entity isn't model"): Either[String, ClassDefinition[L]]
374+
else tpe.toRight("Empty entity name").map(ClassDefinition[L](clsName.last, _, fullType, defn, finalStaticDefns, parents))
375+
}
376+
380377
}
381378

382379
private def prepareProperties[L <: LA, F[_]](
@@ -406,8 +403,19 @@ object ProtocolGenerator {
406403
nestedClassName <- formatTypeName(name).map(formattedName => getClsName(name).append(formattedName))
407404
defn <- schema
408405
.refine[F[Option[Either[String, NestedProtocolElems[L]]]]] { case x: ObjectSchema => x }(_ =>
409-
fromModel(nestedClassName, schema, List.empty, concreteTypes, definitions, dtoPackage, supportPackage, defaultPropertyRequirement, components)
410-
.map(Option(_))
406+
for {
407+
defn <- fromModel(
408+
nestedClassName,
409+
schema,
410+
List.empty,
411+
concreteTypes,
412+
definitions,
413+
dtoPackage,
414+
supportPackage,
415+
defaultPropertyRequirement,
416+
components
417+
)
418+
} yield Option(defn)
411419
)
412420
.orRefine { case o: ComposedSchema => o }(o =>
413421
for {

modules/java-support/src/main/scala/dev/guardrail/generators/java/jackson/JacksonGenerator.scala

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -822,17 +822,19 @@ class JacksonGenerator private (implicit Cl: CollectionsLibTerms[JavaLanguage, T
822822

823823
override def extractProperties(swagger: Tracker[Schema[_]]) =
824824
swagger
825-
.refine { case m: ObjectSchema => m }(m => Target.pure(m.downField("properties", _.getProperties()).indexedCosequence.value))
826-
.orRefine { case c: ComposedSchema => c }(comp =>
827-
Target.pure(
825+
.refine[Target[List[(String, Tracker[Schema[_]])]]] { case m: ObjectSchema => m }(m =>
826+
Target.pure(m.downField("properties", _.getProperties()).indexedCosequence.value)
827+
)
828+
.orRefine { case c: ComposedSchema => c } { comp =>
829+
val extractedProps =
828830
comp
829831
.downField("allOf", _.getAllOf())
830832
.indexedDistribute
831833
.lastOption
832834
.toList
833835
.flatMap(_.downField("properties", _.getProperties).indexedCosequence.value.toList)
834-
)
835-
)
836+
Target.pure(extractedProps)
837+
}
836838
.orRefine { case x: Schema[_] if Option(x.get$ref()).isDefined => x }(comp =>
837839
Target.raiseUserError(s"Attempted to extractProperties for a ${comp.unwrapTracker.getClass()}, unsure what to do here (${comp.showHistory})")
838840
)
@@ -853,20 +855,21 @@ class JacksonGenerator private (implicit Cl: CollectionsLibTerms[JavaLanguage, T
853855
defaultValue: Option[com.github.javaparser.ast.Node]
854856
) =
855857
Target.log.function("transformProperty") {
856-
val readOnlyKey = Option(name).filter(_ => property.downField("readOnly", _.getReadOnly).unwrapTracker.contains(true))
857-
val emptyToNull =
858-
property
858+
val fallbackRawType = LiteralRawType(property.downField("type", _.getType()).unwrapTracker, property.downField("format", _.getFormat()).unwrapTracker)
859+
for {
860+
_ <- Target.log.debug(s"Args: (${clsName}, ${name}, ...)")
861+
862+
readOnlyKey = Option(name).filter(_ => property.downField("readOnly", _.getReadOnly()).unwrapTracker.contains(true))
863+
emptyToNull = property
859864
.refine { case d: DateSchema => d }(d => EmptyValueIsNull(d))
860865
.orRefine { case dt: DateTimeSchema => dt }(dt => EmptyValueIsNull(dt))
861866
.orRefine { case s: StringSchema => s }(s => EmptyValueIsNull(s))
862867
.toOption
863868
.flatten
864869
.getOrElse(EmptyIsEmpty)
865-
val dataRedaction = DataRedaction(property).getOrElse(DataVisible)
866870

867-
val fallbackRawType = LiteralRawType(property.downField("type", _.getType()).unwrapTracker, property.downField("format", _.getFormat()).unwrapTracker)
871+
dataRedaction = DataRedaction(property).getOrElse(DataVisible)
868872

869-
for {
870873
(tpe, classDep, rawType) <- meta match {
871874
case core.Resolved(declType, classDep, _, rawType) =>
872875
Target.pure((declType, classDep, rawType))

modules/scala-support/src/main/scala/dev/guardrail/generators/scala/circe/CirceProtocolGenerator.scala

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -135,18 +135,20 @@ class CirceProtocolGenerator private (circeVersion: CirceModelGenerator, applyVa
135135
override def extractProperties(swagger: Tracker[Schema[_]]) =
136136
swagger
137137
.refine[Target[List[(String, Tracker[Schema[_]])]]] { case o: ObjectSchema => o }(m =>
138-
Target.pure(m.downField("properties", _.getProperties).indexedCosequence.value)
138+
Target.pure(m.downField("properties", _.getProperties()).indexedCosequence.value)
139139
)
140140
.orRefine { case c: ComposedSchema => c } { comp =>
141141
val extractedProps =
142-
comp.downField("allOf", _.getAllOf()).indexedDistribute.flatMap(_.downField("properties", _.getProperties).indexedCosequence.value)
142+
comp
143+
.downField("allOf", _.getAllOf())
144+
.indexedDistribute
145+
.flatMap(_.downField("properties", _.getProperties).indexedCosequence.value)
143146
Target.pure(extractedProps)
144147
}
145148
.orRefine { case x: Schema[_] if Option(x.get$ref()).isDefined => x }(comp =>
146149
Target.raiseUserError(s"Attempted to extractProperties for a ${comp.unwrapTracker.getClass()}, unsure what to do here (${comp.showHistory})")
147150
)
148-
.getOrElse(Target.pure(List.empty))
149-
.map(_.toList)
151+
.getOrElse(Target.pure(List.empty[(String, Tracker[Schema[_]])]))
150152

151153
override def transformProperty(
152154
clsName: String,

0 commit comments

Comments
 (0)