userplex 0.6.1 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: bff32ef0e64d770c22f38d8398326d02f8f26ef9a4fb32ee194ded3c69a6d0cf
4
- data.tar.gz: d49b49155d49c5866b416248060a1eb467a21a9664d90cf872465045ac7f3b4f
3
+ metadata.gz: 329f3d0f92b37bc96fa0b691bb77a5e7a10823402be55206b593bdfd0e94b1ae
4
+ data.tar.gz: 5f91323be6c17044721c714eb9102c9c289a2acfde1d45ad0fd3ad9cad77397e
5
5
  SHA512:
6
- metadata.gz: 85b18927e17088fe578a2f48d37074163dd045f82e4c5d1f4e679cdbac0d671a49b469bb40161b7c641e50caa4f7c25ea18b1edbabc76697e294966c702b84f7
7
- data.tar.gz: 80c8b12d6fe80a78633ed422951305af347ddef3848321d23f5946fa526a8feee34d55abe8cd15dea697cfdfa649c39452570936548c7a396eb6108bfc6438ef
6
+ metadata.gz: 56e22d9dd10b8f2240656e54e2527219f989801b6cd483c4cabda7cf48340cb349951ca8322e7253b5b37ed2e06c54b4b6670a8eef596e8826fd644ef847f627
7
+ data.tar.gz: 54f90f72015492bf7146f1b353606eb1eedb0fffd229144c2f3c2941283a2564275231ff917fd908b986a73d02c976d87555a638c708dc0ceccc92777b0f9cfb
data/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.7.0 (2025-12-19)
4
+
5
+ Full Changelog: [v0.6.2...v0.7.0](https://github.com/dqnamo/userplex-ruby/compare/v0.6.2...v0.7.0)
6
+
7
+ ### Features
8
+
9
+ * **api:** api update ([aa5d72f](https://github.com/dqnamo/userplex-ruby/commit/aa5d72fced4bcd10cc2301a5f118d48c138df517))
10
+
11
+ ## 0.6.2 (2025-12-19)
12
+
13
+ Full Changelog: [v0.6.1...v0.6.2](https://github.com/dqnamo/userplex-ruby/compare/v0.6.1...v0.6.2)
14
+
15
+ ### Bug Fixes
16
+
17
+ * issue where json.parse errors when receiving HTTP 204 with nobody ([a4b0ce0](https://github.com/dqnamo/userplex-ruby/commit/a4b0ce01f81053fb2b03348ead1ef686fe2c53b1))
18
+
3
19
  ## 0.6.1 (2025-12-17)
4
20
 
5
21
  Full Changelog: [v0.6.0...v0.6.1](https://github.com/dqnamo/userplex-ruby/compare/v0.6.0...v0.6.1)
data/README.md CHANGED
@@ -15,7 +15,7 @@ To use this gem, install via Bundler by adding the following to your application
15
15
  <!-- x-release-please-start-version -->
16
16
 
17
17
  ```ruby
18
- gem "userplex", "~> 0.6.1"
18
+ gem "userplex", "~> 0.7.0"
19
19
  ```
20
20
 
21
21
  <!-- x-release-please-end -->
@@ -657,7 +657,8 @@ module Userplex
657
657
  def decode_content(headers, stream:, suppress_error: false)
658
658
  case (content_type = headers["content-type"])
659
659
  in Userplex::Internal::Util::JSON_CONTENT
660
- json = stream.to_a.join
660
+ return nil if (json = stream.to_a.join).empty?
661
+
661
662
  begin
662
663
  JSON.parse(json, symbolize_names: true)
663
664
  rescue JSON::ParserError => e
@@ -667,7 +668,11 @@ module Userplex
667
668
  in Userplex::Internal::Util::JSONL_CONTENT
668
669
  lines = decode_lines(stream)
669
670
  chain_fused(lines) do |y|
670
- lines.each { y << JSON.parse(_1, symbolize_names: true) }
671
+ lines.each do
672
+ next if _1.empty?
673
+
674
+ y << JSON.parse(_1, symbolize_names: true)
675
+ end
671
676
  end
672
677
  in %r{^text/event-stream}
673
678
  lines = decode_lines(stream)
@@ -39,7 +39,5 @@ module Userplex
39
39
  mod.define_sorbet_constant!(const) { T.type_alias { mod.to_sorbet_type } }
40
40
  end
41
41
 
42
- EventNewParams = Userplex::Models::EventNewParams
43
-
44
42
  UserIdentifyParams = Userplex::Models::UserIdentifyParams
45
43
  end
@@ -3,35 +3,6 @@
3
3
  module Userplex
4
4
  module Resources
5
5
  class Events
6
- # Creates or uses an existing event and records an event occurrence for an end
7
- # user. Requires a valid API key for authentication.
8
- #
9
- # @overload new(name:, user_id:, properties: nil, timestamp: nil, request_options: {})
10
- #
11
- # @param name [String]
12
- #
13
- # @param user_id [String] External user ID
14
- #
15
- # @param properties [Hash{Symbol=>Object, nil}] Additional event properties
16
- #
17
- # @param timestamp [Time] Event timestamp (ISO 8601)
18
- #
19
- # @param request_options [Userplex::RequestOptions, Hash{Symbol=>Object}, nil]
20
- #
21
- # @return [Userplex::Models::EventNewResponse]
22
- #
23
- # @see Userplex::Models::EventNewParams
24
- def new(params)
25
- parsed, options = Userplex::EventNewParams.dump_request(params)
26
- @client.request(
27
- method: :post,
28
- path: "api/event",
29
- body: parsed,
30
- model: Userplex::Models::EventNewResponse,
31
- options: options
32
- )
33
- end
34
-
35
6
  # @api private
36
7
  #
37
8
  # @param client [Userplex::Client]
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Userplex
4
- VERSION = "0.6.1"
4
+ VERSION = "0.7.0"
5
5
  end
data/lib/userplex.rb CHANGED
@@ -52,8 +52,6 @@ require_relative "userplex/errors"
52
52
  require_relative "userplex/internal/transport/base_client"
53
53
  require_relative "userplex/internal/transport/pooled_net_requester"
54
54
  require_relative "userplex/client"
55
- require_relative "userplex/models/event_new_params"
56
- require_relative "userplex/models/event_new_response"
57
55
  require_relative "userplex/models/user_identify_params"
58
56
  require_relative "userplex/models/user_identify_response"
59
57
  require_relative "userplex/models"
@@ -1,7 +1,5 @@
1
1
  # typed: strong
2
2
 
3
3
  module Userplex
4
- EventNewParams = Userplex::Models::EventNewParams
5
-
6
4
  UserIdentifyParams = Userplex::Models::UserIdentifyParams
7
5
  end
@@ -3,29 +3,6 @@
3
3
  module Userplex
4
4
  module Resources
5
5
  class Events
6
- # Creates or uses an existing event and records an event occurrence for an end
7
- # user. Requires a valid API key for authentication.
8
- sig do
9
- params(
10
- name: String,
11
- user_id: String,
12
- properties: T::Hash[Symbol, T.nilable(T.anything)],
13
- timestamp: Time,
14
- request_options: Userplex::RequestOptions::OrHash
15
- ).returns(Userplex::Models::EventNewResponse)
16
- end
17
- def new(
18
- name:,
19
- # External user ID
20
- user_id:,
21
- # Additional event properties
22
- properties: nil,
23
- # Event timestamp (ISO 8601)
24
- timestamp: nil,
25
- request_options: {}
26
- )
27
- end
28
-
29
6
  # @api private
30
7
  sig { params(client: Userplex::Client).returns(T.attached_class) }
31
8
  def self.new(client:)
@@ -1,5 +1,3 @@
1
1
  module Userplex
2
- class EventNewParams = Userplex::Models::EventNewParams
3
-
4
2
  class UserIdentifyParams = Userplex::Models::UserIdentifyParams
5
3
  end
@@ -1,14 +1,6 @@
1
1
  module Userplex
2
2
  module Resources
3
3
  class Events
4
- def new: (
5
- name: String,
6
- user_id: String,
7
- ?properties: ::Hash[Symbol, top?],
8
- ?timestamp: Time,
9
- ?request_options: Userplex::request_opts
10
- ) -> Userplex::Models::EventNewResponse
11
-
12
4
  def initialize: (client: Userplex::Client) -> void
13
5
  end
14
6
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: userplex
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.1
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Userplex
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-12-17 00:00:00.000000000 Z
11
+ date: 2025-12-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: connection_pool
@@ -55,8 +55,6 @@ files:
55
55
  - lib/userplex/internal/type/unknown.rb
56
56
  - lib/userplex/internal/util.rb
57
57
  - lib/userplex/models.rb
58
- - lib/userplex/models/event_new_params.rb
59
- - lib/userplex/models/event_new_response.rb
60
58
  - lib/userplex/models/user_identify_params.rb
61
59
  - lib/userplex/models/user_identify_response.rb
62
60
  - lib/userplex/request_options.rb
@@ -83,8 +81,6 @@ files:
83
81
  - rbi/userplex/internal/type/unknown.rbi
84
82
  - rbi/userplex/internal/util.rbi
85
83
  - rbi/userplex/models.rbi
86
- - rbi/userplex/models/event_new_params.rbi
87
- - rbi/userplex/models/event_new_response.rbi
88
84
  - rbi/userplex/models/user_identify_params.rbi
89
85
  - rbi/userplex/models/user_identify_response.rbi
90
86
  - rbi/userplex/request_options.rbi
@@ -110,8 +106,6 @@ files:
110
106
  - sig/userplex/internal/type/unknown.rbs
111
107
  - sig/userplex/internal/util.rbs
112
108
  - sig/userplex/models.rbs
113
- - sig/userplex/models/event_new_params.rbs
114
- - sig/userplex/models/event_new_response.rbs
115
109
  - sig/userplex/models/user_identify_params.rbs
116
110
  - sig/userplex/models/user_identify_response.rbs
117
111
  - sig/userplex/request_options.rbs
@@ -1,45 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Userplex
4
- module Models
5
- # @see Userplex::Resources::Events#new
6
- class EventNewParams < Userplex::Internal::Type::BaseModel
7
- extend Userplex::Internal::Type::RequestParameters::Converter
8
- include Userplex::Internal::Type::RequestParameters
9
-
10
- # @!attribute name
11
- #
12
- # @return [String]
13
- required :name, String
14
-
15
- # @!attribute user_id
16
- # External user ID
17
- #
18
- # @return [String]
19
- required :user_id, String
20
-
21
- # @!attribute properties
22
- # Additional event properties
23
- #
24
- # @return [Hash{Symbol=>Object, nil}, nil]
25
- optional :properties, Userplex::Internal::Type::HashOf[Userplex::Internal::Type::Unknown, nil?: true]
26
-
27
- # @!attribute timestamp
28
- # Event timestamp (ISO 8601)
29
- #
30
- # @return [Time, nil]
31
- optional :timestamp, Time
32
-
33
- # @!method initialize(name:, user_id:, properties: nil, timestamp: nil, request_options: {})
34
- # @param name [String]
35
- #
36
- # @param user_id [String] External user ID
37
- #
38
- # @param properties [Hash{Symbol=>Object, nil}] Additional event properties
39
- #
40
- # @param timestamp [Time] Event timestamp (ISO 8601)
41
- #
42
- # @param request_options [Userplex::RequestOptions, Hash{Symbol=>Object}]
43
- end
44
- end
45
- end
@@ -1,17 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Userplex
4
- module Models
5
- # @see Userplex::Resources::Events#new
6
- class EventNewResponse < Userplex::Internal::Type::BaseModel
7
- # @!attribute success
8
- # Operation success status
9
- #
10
- # @return [Boolean]
11
- required :success, Userplex::Internal::Type::Boolean
12
-
13
- # @!method initialize(success:)
14
- # @param success [Boolean] Operation success status
15
- end
16
- end
17
- end
@@ -1,71 +0,0 @@
1
- # typed: strong
2
-
3
- module Userplex
4
- module Models
5
- class EventNewParams < Userplex::Internal::Type::BaseModel
6
- extend Userplex::Internal::Type::RequestParameters::Converter
7
- include Userplex::Internal::Type::RequestParameters
8
-
9
- OrHash =
10
- T.type_alias do
11
- T.any(Userplex::EventNewParams, Userplex::Internal::AnyHash)
12
- end
13
-
14
- sig { returns(String) }
15
- attr_accessor :name
16
-
17
- # External user ID
18
- sig { returns(String) }
19
- attr_accessor :user_id
20
-
21
- # Additional event properties
22
- sig { returns(T.nilable(T::Hash[Symbol, T.nilable(T.anything)])) }
23
- attr_reader :properties
24
-
25
- sig { params(properties: T::Hash[Symbol, T.nilable(T.anything)]).void }
26
- attr_writer :properties
27
-
28
- # Event timestamp (ISO 8601)
29
- sig { returns(T.nilable(Time)) }
30
- attr_reader :timestamp
31
-
32
- sig { params(timestamp: Time).void }
33
- attr_writer :timestamp
34
-
35
- sig do
36
- params(
37
- name: String,
38
- user_id: String,
39
- properties: T::Hash[Symbol, T.nilable(T.anything)],
40
- timestamp: Time,
41
- request_options: Userplex::RequestOptions::OrHash
42
- ).returns(T.attached_class)
43
- end
44
- def self.new(
45
- name:,
46
- # External user ID
47
- user_id:,
48
- # Additional event properties
49
- properties: nil,
50
- # Event timestamp (ISO 8601)
51
- timestamp: nil,
52
- request_options: {}
53
- )
54
- end
55
-
56
- sig do
57
- override.returns(
58
- {
59
- name: String,
60
- user_id: String,
61
- properties: T::Hash[Symbol, T.nilable(T.anything)],
62
- timestamp: Time,
63
- request_options: Userplex::RequestOptions
64
- }
65
- )
66
- end
67
- def to_hash
68
- end
69
- end
70
- end
71
- end
@@ -1,27 +0,0 @@
1
- # typed: strong
2
-
3
- module Userplex
4
- module Models
5
- class EventNewResponse < Userplex::Internal::Type::BaseModel
6
- OrHash =
7
- T.type_alias do
8
- T.any(Userplex::Models::EventNewResponse, Userplex::Internal::AnyHash)
9
- end
10
-
11
- # Operation success status
12
- sig { returns(T::Boolean) }
13
- attr_accessor :success
14
-
15
- sig { params(success: T::Boolean).returns(T.attached_class) }
16
- def self.new(
17
- # Operation success status
18
- success:
19
- )
20
- end
21
-
22
- sig { override.returns({ success: T::Boolean }) }
23
- def to_hash
24
- end
25
- end
26
- end
27
- end
@@ -1,45 +0,0 @@
1
- module Userplex
2
- module Models
3
- type event_new_params =
4
- {
5
- name: String,
6
- user_id: String,
7
- properties: ::Hash[Symbol, top?],
8
- timestamp: Time
9
- }
10
- & Userplex::Internal::Type::request_parameters
11
-
12
- class EventNewParams < Userplex::Internal::Type::BaseModel
13
- extend Userplex::Internal::Type::RequestParameters::Converter
14
- include Userplex::Internal::Type::RequestParameters
15
-
16
- attr_accessor name: String
17
-
18
- attr_accessor user_id: String
19
-
20
- attr_reader properties: ::Hash[Symbol, top?]?
21
-
22
- def properties=: (::Hash[Symbol, top?]) -> ::Hash[Symbol, top?]
23
-
24
- attr_reader timestamp: Time?
25
-
26
- def timestamp=: (Time) -> Time
27
-
28
- def initialize: (
29
- name: String,
30
- user_id: String,
31
- ?properties: ::Hash[Symbol, top?],
32
- ?timestamp: Time,
33
- ?request_options: Userplex::request_opts
34
- ) -> void
35
-
36
- def to_hash: -> {
37
- name: String,
38
- user_id: String,
39
- properties: ::Hash[Symbol, top?],
40
- timestamp: Time,
41
- request_options: Userplex::RequestOptions
42
- }
43
- end
44
- end
45
- end
@@ -1,13 +0,0 @@
1
- module Userplex
2
- module Models
3
- type event_new_response = { success: bool }
4
-
5
- class EventNewResponse < Userplex::Internal::Type::BaseModel
6
- attr_accessor success: bool
7
-
8
- def initialize: (success: bool) -> void
9
-
10
- def to_hash: -> { success: bool }
11
- end
12
- end
13
- end