Fixed MoshiX json serialization/generated classes.

This commit is contained in:
Robinson 2022-12-06 12:02:17 +01:00
parent dc7781db38
commit a878289779
No known key found for this signature in database
GPG Key ID: 8E7DB78588BD6F5C
12 changed files with 23 additions and 38 deletions

View File

@ -36,7 +36,7 @@ plugins {
// There are several issues with KSP.
// 1) It runs on every compile (it's not cached)
// 2) It is not possible to (at last I don't know) how to run this via IntelliJ compiles (it's only via Gradle)
id("dev.zacsweers.moshix") version "0.19.0" apply(false)
id("dev.zacsweers.moshix") version "0.20.0"
kotlin("jvm") version "1.7.21"
}
@ -115,8 +115,8 @@ dependencies {
implementation("org.jetbrains.kotlin:kotlin-stdlib-common")
implementation("org.jetbrains.kotlin:kotlin-reflect")
val moshiVer = "1.12.0"
val okHttpVer = "4.9.1"
val moshiVer = "1.14.0"
val okHttpVer = "4.10.0"
val retroVer = "2.9.0"
api("com.squareup.okhttp3:okhttp:$okHttpVer")

View File

@ -16,15 +16,10 @@
package dorkbox.kloudflareApi.api.core
import com.squareup.moshi.FromJson
import com.squareup.moshi.JsonQualifier
import com.squareup.moshi.ToJson
import java.time.LocalDateTime
import java.time.format.DateTimeFormatter
@Retention(AnnotationRetention.RUNTIME)
@JsonQualifier
annotation class ISO8601
/** Converts byte arrays to base64 (so it looks better as a string...) */
internal class ISO8601Adapter {
companion object {
@ -34,18 +29,17 @@ internal class ISO8601Adapter {
@ToJson
fun toJson(@ISO8601 date: LocalDateTime): String {
fun toJson(date: LocalDateTime): String {
return format.format(date)
}
@FromJson
@ISO8601
fun fromJson(dateString: String): LocalDateTime {
return try {
return LocalDateTime.parse(dateString, format)
}
catch (ignored: Exception) {
// if there is an error, return epoc
// if there is an error, return the epoc
LocalDateTime.now()
}
}

View File

@ -17,7 +17,6 @@ package dorkbox.kloudflareApi.api.dns
import com.squareup.moshi.Json
import com.squareup.moshi.JsonClass
import dorkbox.kloudflareApi.api.core.ISO8601
import dorkbox.kloudflareApi.api.zone.Zone
import java.time.LocalDateTime
@ -108,13 +107,13 @@ open class DnsRecord {
/**
* When the record was last modified
*/
@field:[Json(name = "modified_on") ISO8601]
@field:[Json(name = "modified_on")]
var modifiedOn: LocalDateTime = LocalDateTime.now()
/**
* When the record was created
*/
@field:[Json(name = "created_on") ISO8601]
@field:[Json(name = "created_on")]
var createdOn: LocalDateTime = LocalDateTime.now()
/**

View File

@ -17,7 +17,6 @@ package dorkbox.kloudflareApi.api.firewall
import com.squareup.moshi.Json
import com.squareup.moshi.JsonClass
import dorkbox.kloudflareApi.api.core.ISO8601
import java.time.LocalDateTime
/**
@ -66,13 +65,13 @@ class AccessRule {
/**
* When the record was last modified
*/
@field:[Json(name = "modified_on") ISO8601]
@field:[Json(name = "modified_on")]
var modifiedOn: LocalDateTime = LocalDateTime.now()
/**
* When the record was created
*/
@field:[Json(name = "created_on") ISO8601]
@field:[Json(name = "created_on")]
var createdOn: LocalDateTime = LocalDateTime.now()
override fun equals(other: Any?): Boolean {

View File

@ -17,7 +17,6 @@ package dorkbox.kloudflareApi.api.user
import com.squareup.moshi.Json
import com.squareup.moshi.JsonClass
import dorkbox.kloudflareApi.api.core.ISO8601
import dorkbox.kloudflareApi.api.zone.Zone
import java.time.LocalDateTime
@ -54,7 +53,7 @@ class BillingHistory {
/**
* When the billing item was created
*/
@field:[Json(name = "occurred_at") ISO8601]
@field:[Json(name = "occurred_at")]
var occurredAt: LocalDateTime = LocalDateTime.now()
/**

View File

@ -17,7 +17,6 @@ package dorkbox.kloudflareApi.api.user
import com.squareup.moshi.Json
import com.squareup.moshi.JsonClass
import dorkbox.kloudflareApi.api.core.ISO8601
import java.time.LocalDateTime
/**
@ -144,13 +143,13 @@ class BillingProfile {
/**
* When the profile was last modified
*/
@field:[Json(name = "edited_on") ISO8601]
@field:[Json(name = "edited_on")]
var editedOn: LocalDateTime = LocalDateTime.now()
/**
* When the profile was created
*/
@field:[Json(name = "created_on") ISO8601]
@field:[Json(name = "created_on")]
var createdOn: LocalDateTime = LocalDateTime.now()
override fun toString(): String {

View File

@ -17,7 +17,6 @@ package dorkbox.kloudflareApi.api.user
import com.squareup.moshi.Json
import com.squareup.moshi.JsonClass
import dorkbox.kloudflareApi.api.core.ISO8601
import java.time.LocalDateTime
/**
@ -59,7 +58,7 @@ class User {
/**
* Last time the user was modified
*/
@field:[Json(name = "modified_on") ISO8601]
@field:[Json(name = "modified_on")]
var modifiedOn: LocalDateTime = LocalDateTime.now()
/**
@ -71,7 +70,7 @@ class User {
/**
* When the user signed up.
*/
@field:[Json(name = "created_on") ISO8601]
@field:[Json(name = "created_on")]
var createdOn: LocalDateTime = LocalDateTime.now()
/**

View File

@ -17,7 +17,6 @@ package dorkbox.kloudflareApi.api.user.invite
import com.squareup.moshi.Json
import com.squareup.moshi.JsonClass
import dorkbox.kloudflareApi.api.core.ISO8601
import java.time.LocalDateTime
/**
@ -29,7 +28,7 @@ class Invite {
/**
* When the invite was sent
*/
@field:[Json(name = "invited_on") ISO8601]
@field:[Json(name = "invited_on")]
var invitedOn: LocalDateTime = LocalDateTime.now()
/**

View File

@ -17,7 +17,6 @@ package dorkbox.kloudflareApi.api.user.subscription
import com.squareup.moshi.Json
import com.squareup.moshi.JsonClass
import dorkbox.kloudflareApi.api.core.ISO8601
import dorkbox.kloudflareApi.api.zone.Zone
import java.time.LocalDateTime
@ -36,7 +35,7 @@ class Subscription {
/**
* The end of the current period, and also when the next billing is due
*/
@field:[Json(name = "current_period_end") ISO8601]
@field:[Json(name = "current_period_end")]
var currentPeriodEnd: LocalDateTime = LocalDateTime.now()
/**
@ -60,7 +59,7 @@ class Subscription {
/**
* When the current billing period started, may be the same as InitialPeriodStart if this is the first period
*/
@field:[Json(name = "current_period_start") ISO8601]
@field:[Json(name = "current_period_start")]
var currentPeriodStart: LocalDateTime = LocalDateTime.now()
/**

View File

@ -25,13 +25,13 @@ import com.squareup.moshi.JsonClass
class Owner {
@field:[Json(name = "id")]
var id = ""
var id: String? = ""
/**
* The type of owner of the zone
*/
@field:[Json(name = "email")]
var email = ""
var email: String? = ""
@field:[Json(name = "owner_type")]
var ownerType = "user"

View File

@ -18,7 +18,6 @@ package dorkbox.kloudflareApi.api.zone
import com.squareup.moshi.Json
import com.squareup.moshi.JsonClass
import dorkbox.kloudflareApi.Kloudflare
import dorkbox.kloudflareApi.api.core.ISO8601
import dorkbox.kloudflareApi.api.dns.DnsRecord
import java.time.LocalDateTime
@ -80,13 +79,13 @@ class Zone {
/**
* When the zone was created
*/
@field:[Json(name = "created_on") ISO8601]
@field:[Json(name = "created_on")]
var createdOn: LocalDateTime = LocalDateTime.now()
/**
* When the zone was last modified
*/
@field:[Json(name = "modified_on") ISO8601]
@field:[Json(name = "modified_on")]
var modifiedOn: LocalDateTime = LocalDateTime.now()
/**
@ -135,7 +134,7 @@ class Zone {
/**
* The last time proof of ownership was detected and the zone was made active
*/
@field:[Json(name = "activated_on") ISO8601]
@field:[Json(name = "activated_on")]
var activatedOn: LocalDateTime? = null
/**

View File

@ -17,7 +17,6 @@ package dorkbox.kloudflareApi.api.zone.settings
import com.squareup.moshi.Json
import com.squareup.moshi.JsonClass
import dorkbox.kloudflareApi.api.core.ISO8601
import java.time.LocalDateTime
/**
@ -862,7 +861,7 @@ open class ZoneSetting {
/**
* last time this setting was modified
*/
@field:[Json(name = "modified_on") ISO8601]
@field:[Json(name = "modified_on")]
var modifiedOn: LocalDateTime? = null
override fun toString(): String {