Skip to content

Commit 7812c90

Browse files
committed
add swagger annotations for sealed classes
1 parent 5eed548 commit 7812c90

File tree

3 files changed

+70
-1
lines changed

3 files changed

+70
-1
lines changed

kotlin-insight-client/kotlin-insight-client-api/pom.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,5 +17,10 @@
1717
<groupId>org.jetbrains.kotlinx</groupId>
1818
<artifactId>kotlinx-coroutines-core</artifactId>
1919
</dependency>
20+
<dependency>
21+
<groupId>io.swagger.core.v3</groupId>
22+
<artifactId>swagger-annotations</artifactId>
23+
<version>2.2.8</version>
24+
</dependency>
2025
</dependencies>
2126
</project>

kotlin-insight-client/kotlin-insight-client-api/src/main/kotlin/com/linkedplanet/kotlininsightclient/api/error/InsightClientError.kt

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,24 @@
2222
package com.linkedplanet.kotlininsightclient.api.error
2323

2424
import arrow.core.Either
25+
import com.linkedplanet.kotlininsightclient.api.model.InsightAttribute
2526
import com.linkedplanet.kotlininsightclient.api.model.InsightObjectId
2627
import com.linkedplanet.kotlininsightclient.api.model.InsightObjectTypeId
27-
import com.linkedplanet.kotlininsightclient.api.model.InsightAttribute
28+
import io.swagger.v3.oas.annotations.media.Schema
29+
30+
@Schema(
31+
oneOf = [
32+
InvalidArgumentInsightClientError::class,
33+
InternalInsightClientError::class,
34+
ExceptionInsightClientError::class,
35+
AuthenticationError::class,
36+
ObjectNotFoundError::class,
37+
ObjectTypeNotFoundError::class,
38+
OtherNotFoundError::class,
39+
OtherInsightClientError::class,
40+
HttpInsightClientError::class
41+
]
42+
)
2843

2944
@Suppress("unused")
3045
sealed class InsightClientError(

kotlin-insight-client/kotlin-insight-client-api/src/main/kotlin/com/linkedplanet/kotlininsightclient/api/model/Model.kt

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
*/
2020
package com.linkedplanet.kotlininsightclient.api.model
2121

22+
import io.swagger.v3.oas.annotations.media.Schema
2223
import java.time.LocalDate
2324
import java.time.LocalTime
2425
import java.time.ZonedDateTime
@@ -92,6 +93,30 @@ data class InsightReference(
9293
/**
9394
* Holds the actual data value(s)
9495
*/
96+
@Schema(
97+
oneOf = [
98+
InsightAttribute.Text::class,
99+
InsightAttribute.Integer::class,
100+
InsightAttribute.Bool::class,
101+
InsightAttribute.DoubleNumber::class,
102+
InsightAttribute.Select::class,
103+
InsightAttribute.Date::class,
104+
InsightAttribute.Time::class,
105+
InsightAttribute.DateTime::class,
106+
InsightAttribute.Url::class,
107+
InsightAttribute.Email::class,
108+
InsightAttribute.Textarea::class,
109+
InsightAttribute.Ipaddress::class,
110+
InsightAttribute.Reference::class,
111+
InsightAttribute.User::class,
112+
InsightAttribute.Confluence::class,
113+
InsightAttribute.Group::class,
114+
InsightAttribute.Version::class,
115+
InsightAttribute.Project::class,
116+
InsightAttribute.Status::class,
117+
InsightAttribute.Unknown::class,
118+
]
119+
)
95120
sealed class InsightAttribute(
96121
@get:JvmName("getAttributeId")
97122
val attributeId: InsightAttributeId,
@@ -243,6 +268,30 @@ data class ObjectTypeSchema(
243268
val parentObjectTypeId: InsightObjectTypeId?
244269
)
245270

271+
@Schema(
272+
oneOf = [
273+
ObjectTypeSchemaAttribute.TextSchema::class,
274+
ObjectTypeSchemaAttribute.IntegerSchema::class,
275+
ObjectTypeSchemaAttribute.BoolSchema::class,
276+
ObjectTypeSchemaAttribute.DoubleNumberSchema::class,
277+
ObjectTypeSchemaAttribute.SelectSchema::class,
278+
ObjectTypeSchemaAttribute.DateSchema::class,
279+
ObjectTypeSchemaAttribute.TimeSchema::class,
280+
ObjectTypeSchemaAttribute.DateTimeSchema::class,
281+
ObjectTypeSchemaAttribute.UrlSchema::class,
282+
ObjectTypeSchemaAttribute.EmailSchema::class,
283+
ObjectTypeSchemaAttribute.TextareaSchema::class,
284+
ObjectTypeSchemaAttribute.IpaddressSchema::class,
285+
ObjectTypeSchemaAttribute.ReferenceSchema::class,
286+
ObjectTypeSchemaAttribute.UserSchema::class,
287+
ObjectTypeSchemaAttribute.ConfluenceSchema::class,
288+
ObjectTypeSchemaAttribute.GroupSchema::class,
289+
ObjectTypeSchemaAttribute.VersionSchema::class,
290+
ObjectTypeSchemaAttribute.ProjectSchema::class,
291+
ObjectTypeSchemaAttribute.StatusSchema::class,
292+
ObjectTypeSchemaAttribute.UnknownSchema::class,
293+
]
294+
)
246295
sealed class ObjectTypeSchemaAttribute {
247296

248297
abstract val id: InsightAttributeId

0 commit comments

Comments
 (0)