Cleanup, added transient id/zone ifnromation to dns records

This commit is contained in:
nathan 2019-06-24 00:03:49 +02:00
parent 6d7cd990b7
commit c970fc7888
5 changed files with 43 additions and 16 deletions

View File

@ -22,6 +22,8 @@ import dorkbox.api.core.*
import dorkbox.api.dns.CreateDnsRecord
import dorkbox.api.dns.DeleteDnsRecord
import dorkbox.api.dns.DnsRecord
import dorkbox.api.dns.UpdateDnsRecord
import dorkbox.api.firewall.AccessRule
import dorkbox.api.user.BillingHistory
import dorkbox.api.user.BillingProfile
import dorkbox.api.user.User
@ -93,8 +95,8 @@ class Kloudflare(private val xAuthEmail: String, private val xAuthKey: String) {
}
fun getUser(): User {
return wrap(cloudflare.getUser(xAuthEmail, xAuthKey))
fun getUserDetails(): User {
return wrap(cloudflare.getUserDetails(xAuthEmail, xAuthKey))
}
fun getUserBillingProfile(): BillingProfile {
@ -118,19 +120,29 @@ class Kloudflare(private val xAuthEmail: String, private val xAuthKey: String) {
}
fun listDnsRecords(zone: Zone): List<DnsRecord> {
return wrap(cloudflare.listDnsRecords(xAuthEmail, xAuthKey, zone.id))
val wrap = wrap(cloudflare.listDnsRecords(xAuthEmail, xAuthKey, zone.id))
wrap.forEach {
it.zone = zone
}
return wrap
}
fun createDnsRecord(zone: Zone, dnsRecord: CreateDnsRecord): DnsRecord {
return wrap(cloudflare.createDnsRecord(xAuthEmail, xAuthKey, zone.id, dnsRecord))
fun createDnsRecord(dnsRecord: CreateDnsRecord): DnsRecord {
val wrap = wrap(cloudflare.createDnsRecord(xAuthEmail, xAuthKey, dnsRecord.zone.id, dnsRecord))
wrap.zone = dnsRecord.zone
return wrap
}
fun updateDnsRecord(zone: Zone, newDnsRecord: CreateDnsRecord): Any {
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
fun updateDnsRecord(updatedDnsRecord: UpdateDnsRecord): Any {
return wrap(cloudflare.updateDnsRecord(xAuthEmail, xAuthKey, updatedDnsRecord.zone.id, updatedDnsRecord.id, updatedDnsRecord))
}
fun deleteDnsRecord(zone: Zone, dnsRecord: DnsRecord): DeleteDnsRecord {
return wrap(cloudflare.deleteDnsRecord(xAuthEmail, xAuthKey, zone.id, dnsRecord.id))
fun deleteDnsRecord(dnsRecord: DnsRecord): DeleteDnsRecord {
return wrap(cloudflare.deleteDnsRecord(xAuthEmail, xAuthKey, dnsRecord.zone.id, dnsRecord.id))
}
fun listAccessRules(): List<AccessRule> {
return wrap(cloudflare.listAccessRules(xAuthEmail, xAuthKey))
}
}

View File

@ -38,7 +38,7 @@ interface CloudflareActions {
*/
@Headers("Content-Type: application/json")
@GET("user")
fun getUser(
fun getUserDetails(
@Header("X-Auth-Email") email: String,
@Header("X-Auth-Key") key: String
): Call<CfResponse<User>>

View File

@ -20,7 +20,14 @@ import com.squareup.moshi.Json
/**
* https://api.cloudflare.com/#dns-records-for-a-zone-create-dns-record
*/
open class CreateDnsRecord {
open class CreateDnsRecord(dnsRecord: DnsRecord) {
@Transient
var id = dnsRecord.id
@Transient
var zone = dnsRecord.zone
/**
* Record type
* A, AAAA, CNAME, TXT, SRV, LOC, MX, NS, SPF, CERT, DNSKEY, DS, NAPTR, SMIMEA, SSHFP, TLSA, URI

View File

@ -17,12 +17,20 @@ package dorkbox.api.dns
import com.squareup.moshi.Json
import dorkbox.api.core.ISO8601
import dorkbox.api.zone.Zone
import java.time.LocalDateTime
/**
* https://api.cloudflare.com/#dns-records-for-a-zone-properties
*/
open class DnsRecord {
/**
* Which zone this DNS record belongs to
*/
@Transient
lateinit var zone: Zone
/**
* DNS record identifier tag
*/

View File

@ -5,4 +5,4 @@ package dorkbox.api.dns
*
* This is the "same" object as creating a new record. This is a different type in order to prevent confusion and simplify naming conventions
*/
class UpdateDnsRecord : CreateDnsRecord()
class UpdateDnsRecord(dnsRecord: DnsRecord) : CreateDnsRecord(dnsRecord)