Class: Typesense::Keys

Inherits:
Object
  • Object
show all
Defined in:
lib/typesense/keys.rb

Constant Summary collapse

RESOURCE_PATH =
'/keys'

Instance Method Summary collapse

Constructor Details

#initialize(api_call) ⇒ Keys

Returns a new instance of Keys.



11
12
13
14
# File 'lib/typesense/keys.rb', line 11

def initialize(api_call)
  @api_call = api_call
  @keys = {}
end

Instance Method Details

#[](id) ⇒ Object



32
33
34
# File 'lib/typesense/keys.rb', line 32

def [](id)
  @keys[id] ||= Key.new(id, @api_call)
end

#create(parameters) ⇒ Object



16
17
18
# File 'lib/typesense/keys.rb', line 16

def create(parameters)
  @api_call.post(RESOURCE_PATH, parameters)
end

#generate_scoped_search_key(search_key, parameters) ⇒ Object



24
25
26
27
28
29
30
# File 'lib/typesense/keys.rb', line 24

def generate_scoped_search_key(search_key, parameters)
  parameters_json = JSON.dump(parameters)
  digest = Base64.encode64(OpenSSL::HMAC.digest('sha256', search_key, parameters_json)).gsub("\n", '')
  key_prefix = search_key[0...4]
  raw_scoped_key = "#{digest}#{key_prefix}#{parameters_json}"
  Base64.encode64(raw_scoped_key).gsub("\n", '')
end

#retrieveObject



20
21
22
# File 'lib/typesense/keys.rb', line 20

def retrieve
  @api_call.get(RESOURCE_PATH)
end