Class: WCC::Contentful::SimpleClient::Cdn
- Inherits:
-
WCC::Contentful::SimpleClient
- Object
- WCC::Contentful::SimpleClient
- WCC::Contentful::SimpleClient::Cdn
- Defined in:
- lib/wcc/contentful/simple_client/cdn.rb
Overview
The CDN SimpleClient accesses ‘cdn.contentful.com’ to get raw JSON responses. It exposes methods to query entries, assets, and content_types. The responses are instances of WCC::Contentful::SimpleClient::Response which handles paging automatically.
Direct Known Subclasses
Constant Summary
Constants inherited from WCC::Contentful::SimpleClient
Instance Attribute Summary
Attributes inherited from WCC::Contentful::SimpleClient
#api_url, #environment, #space
Attributes included from Instrumentation
Instance Method Summary collapse
-
#asset(key, query = {}) ⇒ Object
Gets an asset by ID.
-
#assets(query = {}) ⇒ Object
Queries assets with optional query parameters.
- #client_type ⇒ Object
-
#content_types(query = {}) ⇒ Object
Queries content types with optional query parameters.
-
#entries(query = {}) ⇒ Object
Queries entries with optional query parameters.
-
#entry(key, query = {}) ⇒ Object
Gets an entry by ID.
-
#initialize(space:, access_token:, **options) ⇒ Cdn
constructor
A new instance of Cdn.
-
#sync(sync_token: nil, **query, &block) ⇒ Object
Accesses the Sync API to get a list of items that have changed since the last sync.
-
#tag(id, query = {}) ⇒ Response
Retrieves a single tag by ID.
- #tags(query = {}) ⇒ Object
Methods inherited from WCC::Contentful::SimpleClient
Methods included from Instrumentation
#_instrumentation_event_prefix, instrument
Constructor Details
#initialize(space:, access_token:, **options) ⇒ Cdn
Returns a new instance of Cdn.
10 11 12 13 14 15 16 17 |
# File 'lib/wcc/contentful/simple_client/cdn.rb', line 10 def initialize(space:, access_token:, **) super( api_url: [:api_url] || 'https://cdn.contentful.com/', space: space, access_token: access_token, ** ) end |
Instance Method Details
#asset(key, query = {}) ⇒ Object
Gets an asset by ID
42 43 44 45 46 47 48 |
# File 'lib/wcc/contentful/simple_client/cdn.rb', line 42 def asset(key, query = {}) resp = _instrument 'entries', type: 'Asset', id: key, query: query do get("assets/#{key}", query) end resp.assert_ok! end |
#assets(query = {}) ⇒ Object
Queries assets with optional query parameters
51 52 53 54 55 56 57 |
# File 'lib/wcc/contentful/simple_client/cdn.rb', line 51 def assets(query = {}) resp = _instrument 'entries', type: 'Asset', query: query do get('assets', query) end resp.assert_ok! end |
#client_type ⇒ Object
19 20 21 |
# File 'lib/wcc/contentful/simple_client/cdn.rb', line 19 def client_type 'cdn' end |
#content_types(query = {}) ⇒ Object
Queries content types with optional query parameters
60 61 62 63 64 65 66 |
# File 'lib/wcc/contentful/simple_client/cdn.rb', line 60 def content_types(query = {}) resp = _instrument 'content_types', query: query do get('content_types', query) end resp.assert_ok! end |
#entries(query = {}) ⇒ Object
Queries entries with optional query parameters
33 34 35 36 37 38 39 |
# File 'lib/wcc/contentful/simple_client/cdn.rb', line 33 def entries(query = {}) resp = _instrument 'entries', type: 'Entry', query: query do get('entries', query) end resp.assert_ok! end |
#entry(key, query = {}) ⇒ Object
Gets an entry by ID
24 25 26 27 28 29 30 |
# File 'lib/wcc/contentful/simple_client/cdn.rb', line 24 def entry(key, query = {}) resp = _instrument 'entries', id: key, type: 'Entry', query: query do get("entries/#{key}", query) end resp.assert_ok! end |
#sync(sync_token: nil, **query, &block) ⇒ Object
Accesses the Sync API to get a list of items that have changed since the last sync. Accepts a block that receives each changed item, and returns the next sync token.
If ‘sync_token` is nil, an initial sync is performed.
108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 |
# File 'lib/wcc/contentful/simple_client/cdn.rb', line 108 def sync(sync_token: nil, **query, &block) return sync_old(sync_token: sync_token, **query) unless block_given? query = { # override default locale for sync queries locale: nil }.merge( if sync_token { sync_token: sync_token } else { initial: true } end ).merge(query) _instrument 'sync', sync_token: sync_token, query: query do resp = get('sync', query) resp = SyncResponse.new(resp) resp.assert_ok! resp.each_page do |page| page.page_items.each(&block) sync_token = resp.next_sync_token end end sync_token end |
#tag(id, query = {}) ⇒ Response
Retrieves a single tag by ID
85 86 87 88 89 90 91 92 93 |
# File 'lib/wcc/contentful/simple_client/cdn.rb', line 85 def tag(id, query = {}) raise ArgumentError, 'id cannot be nil or empty' if id.nil? || id.empty? resp = _instrument 'tags', id: id, query: query do get("tags/#{id}", query) end resp.assert_ok! end |
#tags(query = {}) ⇒ Object
69 70 71 72 73 74 75 |
# File 'lib/wcc/contentful/simple_client/cdn.rb', line 69 def (query = {}) resp = _instrument 'tags', query: query do get('tags', query) end resp.assert_ok! end |