vortex-ruby-sdk 1.0.0 → 1.1.3
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 +4 -4
- data/.claude/implementation-guide.md +533 -0
- data/CHANGELOG.md +20 -0
- data/PUBLISHING.md +6 -6
- data/README.md +64 -21
- data/examples/basic_usage.rb +19 -13
- data/examples/rails_app.rb +10 -11
- data/examples/sinatra_app.rb +10 -11
- data/lib/vortex/client.rb +113 -19
- data/lib/vortex/rails.rb +56 -7
- data/lib/vortex/types.rb +87 -0
- data/lib/vortex/version.rb +1 -1
- data/lib/vortex.rb +1 -0
- data/vortex-ruby-sdk.gemspec +1 -1
- metadata +10 -7
data/lib/vortex/types.rb
ADDED
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Vortex
|
|
4
|
+
# Type documentation for Vortex SDK responses
|
|
5
|
+
# Ruby uses dynamic typing with Hashes, but this documents the expected structure
|
|
6
|
+
module Types
|
|
7
|
+
# Group structure for JWT generation (input)
|
|
8
|
+
# @example
|
|
9
|
+
# {
|
|
10
|
+
# type: 'workspace',
|
|
11
|
+
# id: 'workspace-123', # Legacy field (deprecated, use groupId)
|
|
12
|
+
# groupId: 'workspace-123', # Preferred field
|
|
13
|
+
# name: 'My Workspace'
|
|
14
|
+
# }
|
|
15
|
+
GROUP_INPUT = {
|
|
16
|
+
type: String, # Required: Group type (e.g., "workspace", "team")
|
|
17
|
+
id: String, # Optional: Legacy field (deprecated, use groupId)
|
|
18
|
+
groupId: String, # Optional: Preferred - Customer's group ID
|
|
19
|
+
name: String # Required: Group name
|
|
20
|
+
}.freeze
|
|
21
|
+
|
|
22
|
+
# InvitationGroup structure from API responses
|
|
23
|
+
# This matches the MemberGroups table structure from the API
|
|
24
|
+
# @example
|
|
25
|
+
# {
|
|
26
|
+
# id: '550e8400-e29b-41d4-a716-446655440000',
|
|
27
|
+
# accountId: '6ba7b810-9dad-11d1-80b4-00c04fd430c8',
|
|
28
|
+
# groupId: 'workspace-123',
|
|
29
|
+
# type: 'workspace',
|
|
30
|
+
# name: 'My Workspace',
|
|
31
|
+
# createdAt: '2025-01-27T12:00:00.000Z'
|
|
32
|
+
# }
|
|
33
|
+
INVITATION_GROUP = {
|
|
34
|
+
id: String, # Vortex internal UUID
|
|
35
|
+
accountId: String, # Vortex account ID
|
|
36
|
+
groupId: String, # Customer's group ID (the ID they provided to Vortex)
|
|
37
|
+
type: String, # Group type (e.g., "workspace", "team")
|
|
38
|
+
name: String, # Group name
|
|
39
|
+
createdAt: String # ISO 8601 timestamp when the group was created
|
|
40
|
+
}.freeze
|
|
41
|
+
|
|
42
|
+
# AcceptUser structure for accepting invitations (new format - preferred)
|
|
43
|
+
# @example
|
|
44
|
+
# {
|
|
45
|
+
# email: 'user@example.com',
|
|
46
|
+
# phone: '+1234567890', # Optional
|
|
47
|
+
# name: 'John Doe' # Optional
|
|
48
|
+
# }
|
|
49
|
+
ACCEPT_USER = {
|
|
50
|
+
email: String, # Optional but either email or phone must be provided
|
|
51
|
+
phone: String, # Optional but either email or phone must be provided
|
|
52
|
+
name: String # Optional
|
|
53
|
+
}.freeze
|
|
54
|
+
|
|
55
|
+
# Invitation structure from API responses
|
|
56
|
+
# @example
|
|
57
|
+
# {
|
|
58
|
+
# id: '550e8400-e29b-41d4-a716-446655440000',
|
|
59
|
+
# accountId: '6ba7b810-9dad-11d1-80b4-00c04fd430c8',
|
|
60
|
+
# groups: [INVITATION_GROUP, ...],
|
|
61
|
+
# # ... other fields
|
|
62
|
+
# }
|
|
63
|
+
INVITATION = {
|
|
64
|
+
id: String,
|
|
65
|
+
accountId: String,
|
|
66
|
+
clickThroughs: Integer,
|
|
67
|
+
configurationAttributes: Hash,
|
|
68
|
+
attributes: Hash,
|
|
69
|
+
createdAt: String,
|
|
70
|
+
deactivated: :boolean,
|
|
71
|
+
deliveryCount: Integer,
|
|
72
|
+
deliveryTypes: Array, # of String
|
|
73
|
+
foreignCreatorId: String,
|
|
74
|
+
invitationType: String,
|
|
75
|
+
modifiedAt: String,
|
|
76
|
+
status: String,
|
|
77
|
+
target: Array, # of { type: String, value: String }
|
|
78
|
+
views: Integer,
|
|
79
|
+
widgetConfigurationId: String,
|
|
80
|
+
projectId: String,
|
|
81
|
+
groups: Array, # of INVITATION_GROUP structures
|
|
82
|
+
accepts: Array, # of acceptance structures
|
|
83
|
+
expired: :boolean,
|
|
84
|
+
expires: String # ISO 8601 timestamp (optional)
|
|
85
|
+
}.freeze
|
|
86
|
+
end
|
|
87
|
+
end
|
data/lib/vortex/version.rb
CHANGED
data/lib/vortex.rb
CHANGED
data/vortex-ruby-sdk.gemspec
CHANGED
|
@@ -6,7 +6,7 @@ Gem::Specification.new do |spec|
|
|
|
6
6
|
spec.name = 'vortex-ruby-sdk'
|
|
7
7
|
spec.version = Vortex::VERSION
|
|
8
8
|
spec.authors = ['Vortex Software']
|
|
9
|
-
spec.email = ['support@vortexsoftware.
|
|
9
|
+
spec.email = ['support@vortexsoftware.com']
|
|
10
10
|
|
|
11
11
|
spec.summary = 'Ruby SDK for Vortex invitation system'
|
|
12
12
|
spec.description = 'A Ruby SDK that provides seamless integration with the Vortex invitation system, including JWT generation and invitation management.'
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: vortex-ruby-sdk
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.1.3
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Vortex Software
|
|
8
|
-
autorequire:
|
|
8
|
+
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2026-01-05 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: faraday
|
|
@@ -139,11 +139,13 @@ dependencies:
|
|
|
139
139
|
description: A Ruby SDK that provides seamless integration with the Vortex invitation
|
|
140
140
|
system, including JWT generation and invitation management.
|
|
141
141
|
email:
|
|
142
|
-
- support@vortexsoftware.
|
|
142
|
+
- support@vortexsoftware.com
|
|
143
143
|
executables: []
|
|
144
144
|
extensions: []
|
|
145
145
|
extra_rdoc_files: []
|
|
146
146
|
files:
|
|
147
|
+
- ".claude/implementation-guide.md"
|
|
148
|
+
- CHANGELOG.md
|
|
147
149
|
- LICENSE
|
|
148
150
|
- PUBLISHING.md
|
|
149
151
|
- README.md
|
|
@@ -156,6 +158,7 @@ files:
|
|
|
156
158
|
- lib/vortex/error.rb
|
|
157
159
|
- lib/vortex/rails.rb
|
|
158
160
|
- lib/vortex/sinatra.rb
|
|
161
|
+
- lib/vortex/types.rb
|
|
159
162
|
- lib/vortex/version.rb
|
|
160
163
|
- vortex-ruby-sdk.gemspec
|
|
161
164
|
homepage: https://github.com/vortexsoftware/vortex-ruby-sdk
|
|
@@ -166,7 +169,7 @@ metadata:
|
|
|
166
169
|
homepage_uri: https://github.com/vortexsoftware/vortex-ruby-sdk
|
|
167
170
|
source_code_uri: https://github.com/vortexsoftware/vortex-ruby-sdk
|
|
168
171
|
changelog_uri: https://github.com/vortexsoftware/vortex-ruby-sdk/blob/main/CHANGELOG.md
|
|
169
|
-
post_install_message:
|
|
172
|
+
post_install_message:
|
|
170
173
|
rdoc_options: []
|
|
171
174
|
require_paths:
|
|
172
175
|
- lib
|
|
@@ -181,8 +184,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
181
184
|
- !ruby/object:Gem::Version
|
|
182
185
|
version: '0'
|
|
183
186
|
requirements: []
|
|
184
|
-
rubygems_version: 3.
|
|
185
|
-
signing_key:
|
|
187
|
+
rubygems_version: 3.4.19
|
|
188
|
+
signing_key:
|
|
186
189
|
specification_version: 4
|
|
187
190
|
summary: Ruby SDK for Vortex invitation system
|
|
188
191
|
test_files: []
|