Skip to content

Commit 1de69cb

Browse files
authored
Origin certificates setup and back-end CIDRs list. (#71)
1 parent f372df4 commit 1de69cb

3 files changed

Lines changed: 54 additions & 0 deletions

File tree

lib/cloudflare/certificates.rb

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
# frozen_string_literal: true
2+
3+
require_relative "representation"
4+
require_relative "paginate"
5+
6+
module Cloudflare
7+
class Certificate < Representation
8+
def certificate
9+
result[:certificate]
10+
end
11+
end
12+
13+
class Certificates < Representation
14+
include Paginate
15+
16+
def representation
17+
Certificate
18+
end
19+
20+
def create(csr_pem, hostnames, request_type = "origin-rsa", requested_validity = 5475)
21+
represent_message(self.post({
22+
csr: csr_pem,
23+
request_type: request_type,
24+
hostnames: hostnames,
25+
requested_validity: requested_validity
26+
}))
27+
end
28+
end
29+
end

lib/cloudflare/connection.rb

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,11 @@
1212

1313
require "async/rest/resource"
1414

15+
require_relative "ips"
1516
require_relative "zones"
1617
require_relative "accounts"
1718
require_relative "user"
19+
require_relative "certificates"
1820

1921
module Cloudflare
2022
class Connection < Async::REST::Resource
@@ -37,6 +39,10 @@ def authenticated(token: nil, key: nil, email: nil)
3739
self.with(headers: headers)
3840
end
3941

42+
def cidrs(ipv: nil)
43+
IPs.new(self.with(path: "ips")).cidrs(ipv: ipv)
44+
end
45+
4046
def zones
4147
Zones.new(self.with(path: "zones/"))
4248
end
@@ -48,5 +54,9 @@ def accounts
4854
def user
4955
User.new(self.with(path: "user"))
5056
end
57+
58+
def certificates
59+
Certificates.new(self.with(path: "certificates"))
60+
end
5161
end
5262
end

lib/cloudflare/ips.rb

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# frozen_string_literal: true
2+
3+
require_relative "representation"
4+
5+
module Cloudflare
6+
class IPs < Representation
7+
def cidrs(ipv: nil)
8+
if ipv
9+
result[:"ipv#{ipv}_cidrs"]
10+
else
11+
result[:ipv4_cidrs].to_a + result[:ipv6_cidrs].to_a
12+
end
13+
end
14+
end
15+
end

0 commit comments

Comments
 (0)