Cleanup, added transient id/zone ifnromation to dns records
This commit is contained in:
parent
6d7cd990b7
commit
c970fc7888
@ -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))
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -38,10 +38,10 @@ 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>>
|
||||
): Call<CfResponse<User>>
|
||||
|
||||
/**
|
||||
* Gets the user's Billing Profile
|
||||
@ -147,7 +147,7 @@ interface CloudflareActions {
|
||||
@Path("zone_identifier") zoneIdentifier: String,
|
||||
@Path("identifier") identifier: String,
|
||||
@Body data: UpdateDnsRecord
|
||||
): Call<CfResponse<DnsRecord>>
|
||||
): Call<CfResponse<DnsRecord>>
|
||||
|
||||
/**
|
||||
* Deletes a DNS record for the specified zone + dns record
|
||||
@ -161,7 +161,7 @@ interface CloudflareActions {
|
||||
@Header("X-Auth-Key") key: String,
|
||||
@Path("zone_identifier") zoneIdentifier: String,
|
||||
@Path("identifier") identifier: String
|
||||
): Call<CfResponse<DeleteDnsRecord>>
|
||||
): Call<CfResponse<DeleteDnsRecord>>
|
||||
|
||||
/**
|
||||
* Lists the access rules for the firewall.
|
||||
@ -173,6 +173,6 @@ interface CloudflareActions {
|
||||
fun listAccessRules(
|
||||
@Header("X-Auth-Email") email: String,
|
||||
@Header("X-Auth-Key") key: String
|
||||
): Call<CfResponse<List<AccessRule>>>
|
||||
): Call<CfResponse<List<AccessRule>>>
|
||||
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
*/
|
||||
|
@ -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)
|
||||
|
Loading…
Reference in New Issue
Block a user