Skip to content

Commit afcd982

Browse files
authored
Merge pull request #49 from tharropoulos/v30
feat!: add v30 api breaking changes
2 parents fe931ca + 57f0eed commit afcd982

34 files changed

+1635
-69
lines changed

.github/workflows/tests.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ jobs:
1313
ruby-version: ['3.0', '3.2', '3.3', '3.4']
1414
services:
1515
typesense:
16-
image: typesense/typesense:29.0
16+
image: typesense/typesense:30.0.alpha1
1717
ports:
1818
- 8108:8108
1919
volumes:

lib/typesense.rb

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,21 @@ module Typesense
1616
require_relative 'typesense/override'
1717
require_relative 'typesense/synonyms'
1818
require_relative 'typesense/synonym'
19+
require_relative 'typesense/synonym_sets'
20+
require_relative 'typesense/synonym_set'
1921
require_relative 'typesense/aliases'
2022
require_relative 'typesense/alias'
2123
require_relative 'typesense/keys'
2224
require_relative 'typesense/key'
2325
require_relative 'typesense/multi_search'
2426
require_relative 'typesense/analytics'
27+
require_relative 'typesense/analytics_events'
2528
require_relative 'typesense/analytics_rules'
2629
require_relative 'typesense/analytics_rule'
30+
require_relative 'typesense/analytics_v1'
31+
require_relative 'typesense/analytics_events_v1'
32+
require_relative 'typesense/analytics_rules_v1'
33+
require_relative 'typesense/analytics_rule_v1'
2734
require_relative 'typesense/presets'
2835
require_relative 'typesense/preset'
2936
require_relative 'typesense/debug'
@@ -37,3 +44,7 @@ module Typesense
3744
require_relative 'typesense/stemming_dictionary'
3845
require_relative 'typesense/nl_search_models'
3946
require_relative 'typesense/nl_search_model'
47+
require_relative 'typesense/curation_sets'
48+
require_relative 'typesense/curation_set'
49+
require_relative 'typesense/curation_set_items'
50+
require_relative 'typesense/curation_set_item'

lib/typesense/analytics.rb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,9 @@ def initialize(api_call)
1111
def rules
1212
@rules ||= AnalyticsRules.new(@api_call)
1313
end
14+
15+
def events
16+
@events ||= AnalyticsEvents.new(@api_call)
17+
end
1418
end
1519
end

lib/typesense/analytics_events.rb

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# frozen_string_literal: true
2+
3+
module Typesense
4+
class AnalyticsEvents
5+
RESOURCE_PATH = '/analytics/events'
6+
7+
def initialize(api_call)
8+
@api_call = api_call
9+
end
10+
11+
def create(params)
12+
@api_call.post(self.class::RESOURCE_PATH, params)
13+
end
14+
15+
def retrieve(params = {})
16+
@api_call.get(self.class::RESOURCE_PATH, params)
17+
end
18+
end
19+
end
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 Typesense
4+
class AnalyticsEventsV1
5+
RESOURCE_PATH = '/analytics/events'
6+
7+
def initialize(api_call)
8+
@api_call = api_call
9+
end
10+
11+
def create(params)
12+
@api_call.post(endpoint_path, params)
13+
end
14+
15+
private
16+
17+
def endpoint_path(operation = nil)
18+
"#{AnalyticsEventsV1::RESOURCE_PATH}#{"/#{URI.encode_www_form_component(operation)}" unless operation.nil?}"
19+
end
20+
end
21+
end

lib/typesense/analytics_rule.rb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,10 @@ def delete
1515
@api_call.delete(endpoint_path)
1616
end
1717

18+
def update(params)
19+
@api_call.put(endpoint_path, params)
20+
end
21+
1822
private
1923

2024
def endpoint_path

lib/typesense/analytics_rule_v1.rb

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# frozen_string_literal: true
2+
3+
module Typesense
4+
class AnalyticsRuleV1
5+
def initialize(rule_name, api_call)
6+
@rule_name = rule_name
7+
@api_call = api_call
8+
end
9+
10+
def retrieve
11+
@api_call.get(endpoint_path)
12+
end
13+
14+
def delete
15+
@api_call.delete(endpoint_path)
16+
end
17+
18+
private
19+
20+
def endpoint_path
21+
"#{AnalyticsRulesV1::RESOURCE_PATH}/#{URI.encode_www_form_component(@rule_name)}"
22+
end
23+
end
24+
end

lib/typesense/analytics_rules.rb

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5,26 +5,19 @@ class AnalyticsRules
55
RESOURCE_PATH = '/analytics/rules'
66

77
def initialize(api_call)
8-
@api_call = api_call
9-
@analytics_rules = {}
8+
@api_call = api_call
109
end
1110

12-
def upsert(rule_name, params)
13-
@api_call.put(endpoint_path(rule_name), params)
11+
def create(rules)
12+
@api_call.post(self.class::RESOURCE_PATH, rules)
1413
end
1514

1615
def retrieve
17-
@api_call.get(endpoint_path)
16+
@api_call.get(self.class::RESOURCE_PATH)
1817
end
1918

2019
def [](rule_name)
21-
@analytics_rules[rule_name] ||= AnalyticsRule.new(rule_name, @api_call)
22-
end
23-
24-
private
25-
26-
def endpoint_path(operation = nil)
27-
"#{AnalyticsRules::RESOURCE_PATH}#{"/#{URI.encode_www_form_component(operation)}" unless operation.nil?}"
20+
AnalyticsRule.new(rule_name, @api_call)
2821
end
2922
end
3023
end
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
# frozen_string_literal: true
2+
3+
module Typesense
4+
class AnalyticsRulesV1
5+
RESOURCE_PATH = '/analytics/rules'
6+
7+
def initialize(api_call)
8+
@api_call = api_call
9+
@analytics_rules = {}
10+
end
11+
12+
def upsert(rule_name, params)
13+
@api_call.put(endpoint_path(rule_name), params)
14+
end
15+
16+
def retrieve
17+
@api_call.get(endpoint_path)
18+
end
19+
20+
def [](rule_name)
21+
@analytics_rules[rule_name] ||= AnalyticsRuleV1.new(rule_name, @api_call)
22+
end
23+
24+
private
25+
26+
def endpoint_path(operation = nil)
27+
"#{AnalyticsRulesV1::RESOURCE_PATH}#{"/#{URI.encode_www_form_component(operation)}" unless operation.nil?}"
28+
end
29+
end
30+
end

lib/typesense/analytics_v1.rb

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# frozen_string_literal: true
2+
3+
module Typesense
4+
class AnalyticsV1
5+
RESOURCE_PATH = '/analytics'
6+
7+
def initialize(api_call)
8+
@api_call = api_call
9+
end
10+
11+
def rules
12+
@rules ||= AnalyticsRulesV1.new(@api_call)
13+
end
14+
15+
def events
16+
@events ||= AnalyticsEventsV1.new(@api_call)
17+
end
18+
end
19+
end

0 commit comments

Comments
 (0)