Skip to content

Commit 47ee2ad

Browse files
feat(api): api update
1 parent b86325d commit 47ee2ad

146 files changed

Lines changed: 4945 additions & 4186 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.stats.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
configured_endpoints: 7
22
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hexlet%2Ftilda-d06441794bcf349b37439e4084aa5accb40ad16d553d5013cd33b9379f183dc1.yml
33
openapi_spec_hash: 231389205a35d2d6c56bd1cac4091e81
4-
config_hash: 02a97d1e54040f9bd1eeef26fc735da7
4+
config_hash: 815230c382ea68d8cedd4946cdc9ef51

README.md

Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ It is generated with [Stainless](https://www.stainless.com/).
88

99
Documentation for releases of this gem can be found [on RubyDoc](https://gemdocs.org/gems/tilda-ruby).
1010

11+
The REST API documentation can be found on [help-ru.tilda.cc](https://help-ru.tilda.cc/api).
12+
1113
## Installation
1214

1315
To use this gem, install via Bundler by adding the following to your application's `Gemfile`:
@@ -26,13 +28,11 @@ gem "tilda-ruby", "~> 0.0.2"
2628
require "bundler/setup"
2729
require "tilda_ruby"
2830

29-
tilda = TildaRuby::Client.new(
30-
api_key: ENV["TILDA_API_KEY"] # This is the default and can be omitted
31-
)
31+
tilda = TildaRuby::Client.new(publickey: "My Publickey", secretkey: "My Secretkey")
3232

33-
getpage = tilda.getpage.retrieve(pageid: "REPLACE_ME")
33+
projects = tilda.projects.list
3434

35-
puts(getpage)
35+
puts(projects)
3636
```
3737

3838
### Handling errors
@@ -41,7 +41,7 @@ When the library is unable to connect to the API, or if the API returns a non-su
4141

4242
```ruby
4343
begin
44-
getpage = tilda.getpage.retrieve(pageid: "REPLACE_ME")
44+
project = tilda.projects.list
4545
rescue TildaRuby::Errors::APIConnectionError => e
4646
puts("The server could not be reached")
4747
puts(e.cause) # an underlying Exception, likely raised within `net/http`
@@ -84,7 +84,7 @@ tilda = TildaRuby::Client.new(
8484
)
8585

8686
# Or, configure per-request:
87-
tilda.getpage.retrieve(pageid: "REPLACE_ME", request_options: {max_retries: 5})
87+
tilda.projects.list(request_options: {max_retries: 5})
8888
```
8989

9090
### Timeouts
@@ -98,7 +98,7 @@ tilda = TildaRuby::Client.new(
9898
)
9999

100100
# Or, configure per-request:
101-
tilda.getpage.retrieve(pageid: "REPLACE_ME", request_options: {timeout: 5})
101+
tilda.projects.list(request_options: {timeout: 5})
102102
```
103103

104104
On timeout, `TildaRuby::Errors::APITimeoutError` is raised.
@@ -128,17 +128,16 @@ You can send undocumented parameters to any endpoint, and read undocumented resp
128128
Note: the `extra_` parameters of the same name overrides the documented parameters.
129129

130130
```ruby
131-
getpage =
132-
tilda.getpage.retrieve(
133-
pageid: "REPLACE_ME",
131+
projects =
132+
tilda.projects.list(
134133
request_options: {
135134
extra_query: {my_query_parameter: value},
136135
extra_body: {my_body_parameter: value},
137136
extra_headers: {"my-header": value}
138137
}
139138
)
140139

141-
puts(getpage[:my_undocumented_property])
140+
puts(projects[:my_undocumented_property])
142141
```
143142

144143
#### Undocumented request params
@@ -176,18 +175,18 @@ This library provides comprehensive [RBI](https://sorbet.org/docs/rbi) definitio
176175
You can provide typesafe request parameters like so:
177176

178177
```ruby
179-
tilda.getpage.retrieve(pageid: "REPLACE_ME")
178+
tilda.projects.list
180179
```
181180

182181
Or, equivalently:
183182

184183
```ruby
185184
# Hashes work, but are not typesafe:
186-
tilda.getpage.retrieve(pageid: "REPLACE_ME")
185+
tilda.projects.list
187186

188187
# You can also splat a full Params class:
189-
params = TildaRuby::GetpageRetrieveParams.new(pageid: "REPLACE_ME")
190-
tilda.getpage.retrieve(**params)
188+
params = TildaRuby::ProjectListParams.new
189+
tilda.projects.list(**params)
191190
```
192191

193192
## Versioning

lib/tilda_ruby.rb

Lines changed: 26 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -52,27 +52,31 @@
5252
require_relative "tilda_ruby/internal/transport/base_client"
5353
require_relative "tilda_ruby/internal/transport/pooled_net_requester"
5454
require_relative "tilda_ruby/client"
55-
require_relative "tilda_ruby/models/error"
56-
require_relative "tilda_ruby/models/getpageexport_retrieve_params"
57-
require_relative "tilda_ruby/models/getpageexport_retrieve_response"
58-
require_relative "tilda_ruby/models/getpagefullexport_retrieve_params"
59-
require_relative "tilda_ruby/models/getpagefullexport_retrieve_response"
60-
require_relative "tilda_ruby/models/getpagefull_retrieve_params"
61-
require_relative "tilda_ruby/models/getpagefull_retrieve_response"
62-
require_relative "tilda_ruby/models/getpage_retrieve_params"
63-
require_relative "tilda_ruby/models/getpage_retrieve_response"
64-
require_relative "tilda_ruby/models/getpageslist_retrieve_params"
65-
require_relative "tilda_ruby/models/getpageslist_retrieve_response"
66-
require_relative "tilda_ruby/models/getprojectinfo_retrieve_params"
67-
require_relative "tilda_ruby/models/getprojectinfo_retrieve_response"
68-
require_relative "tilda_ruby/models/getprojectslist_list_params"
69-
require_relative "tilda_ruby/models/getprojectslist_list_response"
55+
require_relative "tilda_ruby/models/css_asset"
56+
require_relative "tilda_ruby/models/export_retrieve_full_params"
57+
require_relative "tilda_ruby/models/export_retrieve_full_response"
58+
require_relative "tilda_ruby/models/export_retrieve_params"
59+
require_relative "tilda_ruby/models/export_retrieve_response"
7060
require_relative "tilda_ruby/models/image_mapping"
61+
require_relative "tilda_ruby/models/js_asset"
62+
require_relative "tilda_ruby/models/page_body"
63+
require_relative "tilda_ruby/models/page_export_body"
64+
require_relative "tilda_ruby/models/page_export_full"
65+
require_relative "tilda_ruby/models/page_full"
66+
require_relative "tilda_ruby/models/page_list_params"
67+
require_relative "tilda_ruby/models/page_list_response"
68+
require_relative "tilda_ruby/models/page_retrieve_full_params"
69+
require_relative "tilda_ruby/models/page_retrieve_full_response"
70+
require_relative "tilda_ruby/models/page_retrieve_params"
71+
require_relative "tilda_ruby/models/page_retrieve_response"
72+
require_relative "tilda_ruby/models/page_summary"
73+
require_relative "tilda_ruby/models/project_info"
74+
require_relative "tilda_ruby/models/project_list_item"
75+
require_relative "tilda_ruby/models/project_list_params"
76+
require_relative "tilda_ruby/models/project_list_response"
77+
require_relative "tilda_ruby/models/project_retrieve_params"
78+
require_relative "tilda_ruby/models/project_retrieve_response"
7179
require_relative "tilda_ruby/models"
72-
require_relative "tilda_ruby/resources/getpage"
73-
require_relative "tilda_ruby/resources/getpageexport"
74-
require_relative "tilda_ruby/resources/getpagefull"
75-
require_relative "tilda_ruby/resources/getpagefullexport"
76-
require_relative "tilda_ruby/resources/getpageslist"
77-
require_relative "tilda_ruby/resources/getprojectinfo"
78-
require_relative "tilda_ruby/resources/getprojectslist"
80+
require_relative "tilda_ruby/resources/export"
81+
require_relative "tilda_ruby/resources/pages"
82+
require_relative "tilda_ruby/resources/projects"

lib/tilda_ruby/client.rb

Lines changed: 35 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -15,42 +15,49 @@ class Client < TildaRuby::Internal::Transport::BaseClient
1515
# Default max retry delay in seconds.
1616
DEFAULT_MAX_RETRY_DELAY = 8.0
1717

18+
# Tilda API public key
1819
# @return [String, nil]
19-
attr_reader :api_key
20+
attr_reader :publickey
2021

21-
# @return [TildaRuby::Resources::Getpage]
22-
attr_reader :getpage
23-
24-
# @return [TildaRuby::Resources::Getpageexport]
25-
attr_reader :getpageexport
26-
27-
# @return [TildaRuby::Resources::Getpagefull]
28-
attr_reader :getpagefull
22+
# Tilda API secret key
23+
# @return [String, nil]
24+
attr_reader :secretkey
2925

30-
# @return [TildaRuby::Resources::Getpagefullexport]
31-
attr_reader :getpagefullexport
26+
# @return [TildaRuby::Resources::Projects]
27+
attr_reader :projects
3228

33-
# @return [TildaRuby::Resources::Getpageslist]
34-
attr_reader :getpageslist
29+
# @return [TildaRuby::Resources::Pages]
30+
attr_reader :pages
3531

36-
# @return [TildaRuby::Resources::Getprojectinfo]
37-
attr_reader :getprojectinfo
32+
# @return [TildaRuby::Resources::Export]
33+
attr_reader :export
3834

39-
# @return [TildaRuby::Resources::Getprojectslist]
40-
attr_reader :getprojectslist
35+
# @api private
36+
#
37+
# @return [Hash{String=>String}]
38+
private def auth_query
39+
{**public_key_auth, **secret_key_auth}
40+
end
4141

4242
# @api private
4343
#
4444
# @return [Hash{String=>String}]
45-
private def auth_headers
46-
return {} if @api_key.nil?
45+
private def public_key_auth
46+
{"publickey" => @publickey}
47+
end
4748

48-
{"authorization" => "Bearer #{@api_key}"}
49+
# @api private
50+
#
51+
# @return [Hash{String=>String}]
52+
private def secret_key_auth
53+
{"secretkey" => @secretkey}
4954
end
5055

5156
# Creates and returns a new client for interacting with the API.
5257
#
53-
# @param api_key [String, nil] Defaults to `ENV["TILDA_API_KEY"]`
58+
# @param publickey [String, nil] Tilda API public key
59+
#
60+
# @param secretkey [String, nil] Tilda API secret key
5461
#
5562
# @param base_url [String, nil] Override the default base URL for the API, e.g.,
5663
# `"https://api.example.com/v2/"`. Defaults to `ENV["TILDA_BASE_URL"]`
@@ -63,7 +70,8 @@ class Client < TildaRuby::Internal::Transport::BaseClient
6370
#
6471
# @param max_retry_delay [Float]
6572
def initialize(
66-
api_key: ENV["TILDA_API_KEY"],
73+
publickey: nil,
74+
secretkey: nil,
6775
base_url: ENV["TILDA_BASE_URL"],
6876
max_retries: self.class::DEFAULT_MAX_RETRIES,
6977
timeout: self.class::DEFAULT_TIMEOUT_IN_SECONDS,
@@ -72,7 +80,8 @@ def initialize(
7280
)
7381
base_url ||= "https://api.tildacdn.info"
7482

75-
@api_key = api_key&.to_s
83+
@publickey = publickey&.to_s
84+
@secretkey = secretkey&.to_s
7685

7786
super(
7887
base_url: base_url,
@@ -82,13 +91,9 @@ def initialize(
8291
max_retry_delay: max_retry_delay
8392
)
8493

85-
@getpage = TildaRuby::Resources::Getpage.new(client: self)
86-
@getpageexport = TildaRuby::Resources::Getpageexport.new(client: self)
87-
@getpagefull = TildaRuby::Resources::Getpagefull.new(client: self)
88-
@getpagefullexport = TildaRuby::Resources::Getpagefullexport.new(client: self)
89-
@getpageslist = TildaRuby::Resources::Getpageslist.new(client: self)
90-
@getprojectinfo = TildaRuby::Resources::Getprojectinfo.new(client: self)
91-
@getprojectslist = TildaRuby::Resources::Getprojectslist.new(client: self)
94+
@projects = TildaRuby::Resources::Projects.new(client: self)
95+
@pages = TildaRuby::Resources::Pages.new(client: self)
96+
@export = TildaRuby::Resources::Export.new(client: self)
9297
end
9398
end
9499
end

lib/tilda_ruby/internal/transport/base_client.rb

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -218,7 +218,7 @@ def initialize(
218218
# @api private
219219
#
220220
# @return [Hash{String=>String}]
221-
private def auth_headers = {}
221+
private def auth_query = {}
222222

223223
# @api private
224224
#
@@ -272,11 +272,10 @@ def initialize(
272272

273273
path = TildaRuby::Internal::Util.interpolate_path(uninterpolated_path)
274274

275-
query = TildaRuby::Internal::Util.deep_merge(req[:query].to_h, opts[:extra_query].to_h)
275+
query = TildaRuby::Internal::Util.deep_merge(auth_query, req[:query].to_h, opts[:extra_query].to_h)
276276

277277
headers = TildaRuby::Internal::Util.normalized_headers(
278278
@headers,
279-
auth_headers,
280279
req[:headers].to_h,
281280
opts[:extra_headers].to_h
282281
)

lib/tilda_ruby/internal/type/base_model.rb

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -438,10 +438,10 @@ def deep_to_h = self.class.recursively_to_h(@data, convert: false)
438438
# @return [Hash{Symbol=>Object}]
439439
#
440440
# @example
441-
# # `error` is a `TildaRuby::Error`
442-
# error => {
443-
# status: status,
444-
# message: message
441+
# # `image_mapping` is a `TildaRuby::ImageMapping`
442+
# image_mapping => {
443+
# from: from,
444+
# to: to
445445
# }
446446
def deconstruct_keys(keys)
447447
(keys || self.class.known_fields.keys)

lib/tilda_ruby/internal/type/union.rb

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,14 @@ module Type
66
# @api private
77
#
88
# @example
9-
# # `getpage_retrieve_response` is a `TildaRuby::Models::GetpageRetrieveResponse`
10-
# case getpage_retrieve_response
11-
# when TildaRuby::Models::GetpageRetrieveResponse::UnionMember0
12-
# puts(getpage_retrieve_response.result)
13-
# when TildaRuby::Error
14-
# puts(getpage_retrieve_response.status)
9+
# # `project_retrieve_response` is a `TildaRuby::Models::ProjectRetrieveResponse`
10+
# case project_retrieve_response
11+
# when TildaRuby::Models::ProjectRetrieveResponse::UnionMember0
12+
# puts(project_retrieve_response.result)
13+
# when TildaRuby::Models::ProjectRetrieveResponse::ErrorResponse
14+
# puts(project_retrieve_response.status)
1515
# else
16-
# puts(getpage_retrieve_response)
16+
# puts(project_retrieve_response)
1717
# end
1818
module Union
1919
include TildaRuby::Internal::Type::Converter

lib/tilda_ruby/models.rb

Lines changed: 25 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -39,21 +39,37 @@ module TildaRuby
3939
mod.define_sorbet_constant!(const) { T.type_alias { mod.to_sorbet_type } }
4040
end
4141

42-
Error = TildaRuby::Models::Error
42+
CssAsset = TildaRuby::Models::CssAsset
4343

44-
GetpageexportRetrieveParams = TildaRuby::Models::GetpageexportRetrieveParams
44+
ExportRetrieveFullParams = TildaRuby::Models::ExportRetrieveFullParams
4545

46-
GetpagefullexportRetrieveParams = TildaRuby::Models::GetpagefullexportRetrieveParams
46+
ExportRetrieveParams = TildaRuby::Models::ExportRetrieveParams
4747

48-
GetpagefullRetrieveParams = TildaRuby::Models::GetpagefullRetrieveParams
48+
ImageMapping = TildaRuby::Models::ImageMapping
4949

50-
GetpageRetrieveParams = TildaRuby::Models::GetpageRetrieveParams
50+
JsAsset = TildaRuby::Models::JsAsset
5151

52-
GetpageslistRetrieveParams = TildaRuby::Models::GetpageslistRetrieveParams
52+
PageBody = TildaRuby::Models::PageBody
5353

54-
GetprojectinfoRetrieveParams = TildaRuby::Models::GetprojectinfoRetrieveParams
54+
PageExportBody = TildaRuby::Models::PageExportBody
5555

56-
GetprojectslistListParams = TildaRuby::Models::GetprojectslistListParams
56+
PageExportFull = TildaRuby::Models::PageExportFull
5757

58-
ImageMapping = TildaRuby::Models::ImageMapping
58+
PageFull = TildaRuby::Models::PageFull
59+
60+
PageListParams = TildaRuby::Models::PageListParams
61+
62+
PageRetrieveFullParams = TildaRuby::Models::PageRetrieveFullParams
63+
64+
PageRetrieveParams = TildaRuby::Models::PageRetrieveParams
65+
66+
PageSummary = TildaRuby::Models::PageSummary
67+
68+
ProjectInfo = TildaRuby::Models::ProjectInfo
69+
70+
ProjectListItem = TildaRuby::Models::ProjectListItem
71+
72+
ProjectListParams = TildaRuby::Models::ProjectListParams
73+
74+
ProjectRetrieveParams = TildaRuby::Models::ProjectRetrieveParams
5975
end

lib/tilda_ruby/models/css_asset.rb

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# frozen_string_literal: true
2+
3+
module TildaRuby
4+
module Models
5+
class CssAsset < TildaRuby::Internal::Type::BaseModel
6+
# @!attribute from
7+
#
8+
# @return [String]
9+
required :from, String
10+
11+
# @!attribute to
12+
#
13+
# @return [String]
14+
required :to, String
15+
16+
# @!method initialize(from:, to:)
17+
# @param from [String]
18+
# @param to [String]
19+
end
20+
end
21+
end

0 commit comments

Comments
 (0)