串接API
This commit is contained in:
parent
aa742df280
commit
935af29314
@ -1,5 +1,5 @@
|
||||
fun main(args: Array<String>) {
|
||||
println("Hello World!")
|
||||
println("Cloudflare DDNS 更新程式已啟動")
|
||||
|
||||
// Try adding program arguments via Run/Debug configuration.
|
||||
// Learn more about running applications: https://www.jetbrains.com/help/idea/running-applications.html.
|
||||
|
||||
35
src/main/kotlin/api/CloudflareApiService.kt
Normal file
35
src/main/kotlin/api/CloudflareApiService.kt
Normal file
@ -0,0 +1,35 @@
|
||||
package api
|
||||
|
||||
import model.CloudflareResult
|
||||
import model.verifyToken.VerifyTokenResult
|
||||
import model.zones.UpdateDnsBody
|
||||
import model.zones.DnsResult
|
||||
import model.zones.ZonesResult
|
||||
import retrofit2.http.*
|
||||
|
||||
interface CloudflareApiService {
|
||||
|
||||
@GET("/client/v4/user/tokens/verify")
|
||||
suspend fun getVerifyToken(
|
||||
@Header("Authorization") token: String
|
||||
): CloudflareResult<VerifyTokenResult>
|
||||
|
||||
@GET("/client/v4/zones")
|
||||
suspend fun getZones(
|
||||
@Header("Authorization") token: String
|
||||
): CloudflareResult<ZonesResult>
|
||||
|
||||
@GET("/client/v4/zones/{ZONE_ID}/dns_records")
|
||||
suspend fun getZoneDnsRecords(
|
||||
@Header("Authorization") token: String,
|
||||
@Path("ZONE_ID") zoneId: String
|
||||
): CloudflareResult<List<DnsResult>>
|
||||
|
||||
@PUT("/client/v4/zones/{ZONE_ID}/dns_records/{RECORD_ID}")
|
||||
suspend fun updateZoneDnsRecords(
|
||||
@Header("Authorization") token: String,
|
||||
@Path("ZONE_ID") zoneId: String,
|
||||
@Path("RECORD_ID") recordId: String,
|
||||
@Body body: UpdateDnsBody
|
||||
): CloudflareResult<DnsResult>
|
||||
}
|
||||
9
src/main/kotlin/model/CloudflareResult.kt
Normal file
9
src/main/kotlin/model/CloudflareResult.kt
Normal file
@ -0,0 +1,9 @@
|
||||
package model
|
||||
|
||||
data class CloudflareResult<T>(
|
||||
val result: T,
|
||||
val result_info: ResultInfo?,
|
||||
val success: Boolean,
|
||||
val errors: List<Message>?,
|
||||
val messages: List<Message>?
|
||||
)
|
||||
6
src/main/kotlin/model/Message.kt
Normal file
6
src/main/kotlin/model/Message.kt
Normal file
@ -0,0 +1,6 @@
|
||||
package model
|
||||
|
||||
data class Message(
|
||||
val code: Int,
|
||||
val message: String
|
||||
)
|
||||
9
src/main/kotlin/model/ResultInfo.kt
Normal file
9
src/main/kotlin/model/ResultInfo.kt
Normal file
@ -0,0 +1,9 @@
|
||||
package model
|
||||
|
||||
data class ResultInfo(
|
||||
val count: Int,
|
||||
val page: Int,
|
||||
val per_page: Int,
|
||||
val total_count: Int,
|
||||
val total_pages: Int
|
||||
)
|
||||
6
src/main/kotlin/model/verifyToken/VerifyTokenResult.kt
Normal file
6
src/main/kotlin/model/verifyToken/VerifyTokenResult.kt
Normal file
@ -0,0 +1,6 @@
|
||||
package model.verifyToken
|
||||
|
||||
data class VerifyTokenResult(
|
||||
val id: String,
|
||||
val status: String
|
||||
)
|
||||
6
src/main/kotlin/model/zones/Account.kt
Normal file
6
src/main/kotlin/model/zones/Account.kt
Normal file
@ -0,0 +1,6 @@
|
||||
package model.zones
|
||||
|
||||
data class Account(
|
||||
val id: String,
|
||||
val name: String
|
||||
)
|
||||
19
src/main/kotlin/model/zones/DnsResult.kt
Normal file
19
src/main/kotlin/model/zones/DnsResult.kt
Normal file
@ -0,0 +1,19 @@
|
||||
package model.zones
|
||||
|
||||
data class DnsResult(
|
||||
val id: String,
|
||||
val zone_id: String,
|
||||
val zone_name: String,
|
||||
val name: String,
|
||||
val type: String,
|
||||
val content: String,
|
||||
val proxiable: Boolean,
|
||||
val proxied: Boolean,
|
||||
val ttl: Int,
|
||||
val locked: Boolean,
|
||||
val meta: Meta,
|
||||
val comment: String?,
|
||||
val tags: List<String>?,
|
||||
val created_on: String,
|
||||
val modified_on: String
|
||||
)
|
||||
13
src/main/kotlin/model/zones/Meta.kt
Normal file
13
src/main/kotlin/model/zones/Meta.kt
Normal file
@ -0,0 +1,13 @@
|
||||
package model.zones
|
||||
|
||||
data class Meta(
|
||||
val step: Int?,
|
||||
val custom_certificate_quota: Int?,
|
||||
val page_rule_quota: Int?,
|
||||
val phishing_detected: Boolean?,
|
||||
val multiple_railguns_allowed: Boolean?,
|
||||
val auto_added: Boolean?,
|
||||
val managed_by_apps: Boolean?,
|
||||
val managed_by_argo_tunnel: Boolean?,
|
||||
val source: String?
|
||||
)
|
||||
7
src/main/kotlin/model/zones/Owner.kt
Normal file
7
src/main/kotlin/model/zones/Owner.kt
Normal file
@ -0,0 +1,7 @@
|
||||
package model.zones
|
||||
|
||||
data class Owner(
|
||||
val id: String?,
|
||||
val type: String,
|
||||
val email: String?
|
||||
)
|
||||
14
src/main/kotlin/model/zones/Plan.kt
Normal file
14
src/main/kotlin/model/zones/Plan.kt
Normal file
@ -0,0 +1,14 @@
|
||||
package model.zones
|
||||
|
||||
data class Plan(
|
||||
val id: String,
|
||||
val name: String,
|
||||
val price: Int,
|
||||
val currency: String,
|
||||
val frequency: String,
|
||||
val is_subscribed: Boolean,
|
||||
val can_subscribe: Boolean,
|
||||
val legacy_id: String,
|
||||
val legacy_discount: Boolean,
|
||||
val externally_managed: Boolean
|
||||
)
|
||||
6
src/main/kotlin/model/zones/Tenant.kt
Normal file
6
src/main/kotlin/model/zones/Tenant.kt
Normal file
@ -0,0 +1,6 @@
|
||||
package model.zones
|
||||
|
||||
data class Tenant(
|
||||
val id: String?,
|
||||
val name: String?
|
||||
)
|
||||
5
src/main/kotlin/model/zones/TenantUnit.kt
Normal file
5
src/main/kotlin/model/zones/TenantUnit.kt
Normal file
@ -0,0 +1,5 @@
|
||||
package model.zones
|
||||
|
||||
data class TenantUnit(
|
||||
val id: String?
|
||||
)
|
||||
9
src/main/kotlin/model/zones/UpdateDnsBody.kt
Normal file
9
src/main/kotlin/model/zones/UpdateDnsBody.kt
Normal file
@ -0,0 +1,9 @@
|
||||
package model.zones
|
||||
|
||||
data class UpdateDnsBody(
|
||||
val content: String,
|
||||
val name: String,
|
||||
val proxied: Boolean,
|
||||
val ttl: Int,
|
||||
val type: String
|
||||
)
|
||||
24
src/main/kotlin/model/zones/ZonesResult.kt
Normal file
24
src/main/kotlin/model/zones/ZonesResult.kt
Normal file
@ -0,0 +1,24 @@
|
||||
package model.zones
|
||||
|
||||
data class ZonesResult(
|
||||
val id: String,
|
||||
val name: String,
|
||||
val status: String,
|
||||
val paused: Boolean,
|
||||
val type: String,
|
||||
val development_mode: Int,
|
||||
val name_servers: List<String>,
|
||||
val original_name_servers: List<String>,
|
||||
val original_registrar: String,
|
||||
val original_dnshost: String?,
|
||||
val modified_on: String,
|
||||
val created_on: String,
|
||||
val activated_on: String,
|
||||
val meta: Meta,
|
||||
val owner: Owner,
|
||||
val account: Account,
|
||||
val tenant: Tenant,
|
||||
val tenant_unit: TenantUnit,
|
||||
val permissions: List<String>,
|
||||
val plan: Plan
|
||||
)
|
||||
Loading…
Reference in New Issue
Block a user