Sha256: 4268b09a5796641e04bc966e77bf637e4601f074dc651700a44864904b330db8
Contents?: true
Size: 1.79 KB
Versions: 3
Compression:
Stored size: 1.79 KB
Contents
module ContentfulMiddleman class Instance API_PREVIEW_URL = 'preview.contentful.com' def initialize(extension) @extension = extension end def entries if options.all_entries all_entries(options.cda_query) else client.entries(options.cda_query) end end def space_name @space_name ||= options.space.fetch(:name) end def content_types_ids_to_mappers @content_types_mappers ||= options.content_types.reduce({}) do |acc, (content_type_id, config)| content_type_mapper = config.fetch(:mapper) acc[content_type_id] = content_type_mapper acc end end def content_types_ids_to_names @content_types_names ||= options.content_types.reduce({}) do |acc, (content_type_id, config)| content_type_name = config.fetch(:name) acc[content_type_id] = content_type_name acc end end def options @extension.options end private def all_entries(cda_query) all = [] query = cda_query.clone query[:order] = 'sys.createdAt' unless query.key?(:order) num_entries = client.entries(limit: 1).total ((num_entries / 1000) + 1).times do |i| query[:limit] = 1000 query[:skip] = i * 1000 page = client.entries(query) page.each { |entry| all << entry } end all end def client @client ||= Contentful::Client.new(client_options) end def client_options client_options = { access_token: options.access_token, space: options.space.fetch(:id), dynamic_entries: :auto, raise_errors: true } client_options[:api_url] = API_PREVIEW_URL if options.use_preview_api client_options end end end
Version data entries
3 entries across 3 versions & 1 rubygems