workos 4.5.0 → 4.6.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: 49c966155f5c153170aeeb3ef517c42e6967a297e875ebea314ffc155fdea5f3
4
- data.tar.gz: 96a7dc5083766f28f6b23f533ffc064e4d1708d19063787ecf8f94f1d5ff09ae
3
+ metadata.gz: 332ad6b582c870d359c308f231c3a9aab661487177b5afb73f9eda7b8c42f3ba
4
+ data.tar.gz: e95ae8f206a0a365a96ecc849b7426c0fd5425b59ac3cb9fde6fae4db1bb3b87
5
5
  SHA512:
6
- metadata.gz: 3e0029ae78436134df06312c02a02490e75f9bc62c23a83e70e647bc0ef5384d7fc7ced8351760291743b2aba3f799171eb242c3c3cad8f8d2940bc95881c288
7
- data.tar.gz: 0ad84d7083020a2d3b8a356064fd4ecc5edc4c9a6aad91ff9b73c28ffcbfa74e6e4a1f0d8131005b87ec658fed0dcb4267ef95539432d4195829e744a9269464
6
+ metadata.gz: b216f6e42eed12702ad449a0370aac224e7c946ea275b48170162a2eb43f4639ee2e7cdf5ef9a1be31edde3d120f3ae7f13d6531233d2974cf27c3af4c7a870a
7
+ data.tar.gz: e1597322a482e0c94fae260b11cc1225f831a80f5e916fbf8b52415df6972054b8eba8b973cb73336c6985396e518535197c9e3fccdc33cd17fd3871a5eff958
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- workos (4.5.0)
4
+ workos (4.6.0)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -748,7 +748,8 @@ module WorkOS
748
748
  #
749
749
  # @param [Hash] options
750
750
  # @option options [String] user_id The ID of the User.
751
- # @option options [String] organization_id Filter Users by the organization they are members of.
751
+ # @option options [String] organization_id Filter memberships by the organization they are members of.
752
+ # @option options [Array<String>] statuses Filter memberships by status.
752
753
  # @option options [String] limit Maximum number of records to return.
753
754
  # @option options [String] order The order in which to paginate records
754
755
  # @option options [String] before Pagination cursor to receive records
@@ -816,6 +817,38 @@ module WorkOS
816
817
  response.is_a? Net::HTTPSuccess
817
818
  end
818
819
 
820
+ # Deactivate an Organization Membership
821
+ #
822
+ # @param [String] id The unique ID of the Organization Membership.
823
+ #
824
+ # @return WorkOS::OrganizationMembership
825
+ def deactivate_organization_membership(id:)
826
+ response = execute_request(
827
+ request: put_request(
828
+ path: "/user_management/organization_memberships/#{id}/deactivate",
829
+ auth: true,
830
+ ),
831
+ )
832
+
833
+ WorkOS::OrganizationMembership.new(response.body)
834
+ end
835
+
836
+ # Reactivate an Organization Membership
837
+ #
838
+ # @param [String] id The unique ID of the Organization Membership.
839
+ #
840
+ # @return WorkOS::OrganizationMembership
841
+ def reactivate_organization_membership(id:)
842
+ response = execute_request(
843
+ request: put_request(
844
+ path: "/user_management/organization_memberships/#{id}/reactivate",
845
+ auth: true,
846
+ ),
847
+ )
848
+
849
+ WorkOS::OrganizationMembership.new(response.body)
850
+ end
851
+
819
852
  # Gets an Invitation
820
853
  #
821
854
  # @param [String] id The unique ID of the Invitation.
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module WorkOS
4
- VERSION = '4.5.0'
4
+ VERSION = '4.6.0'
5
5
  end
@@ -933,6 +933,33 @@ describe WorkOS::UserManagement do
933
933
  end
934
934
  end
935
935
  end
936
+
937
+ context 'with statuses option' do
938
+ it 'returns a list of matching users' do
939
+ request_args = [
940
+ '/user_management/organization_memberships?user_id=user_01HXYSZBKQE2N3NHBKZHDP1X5X&'\
941
+ 'statuses=active&statuses=inactive&order=desc&limit=5',
942
+ 'Content-Type' => 'application/json'
943
+ ]
944
+
945
+ expected_request = Net::HTTP::Get.new(*request_args)
946
+
947
+ expect(Net::HTTP::Get).to receive(:new).with(*request_args).
948
+ and_return(expected_request)
949
+
950
+ VCR.use_cassette 'user_management/list_organization_memberships/with_statuses_option' do
951
+ organization_memberships = described_class.list_organization_memberships(
952
+ user_id: 'user_01HXYSZBKQE2N3NHBKZHDP1X5X',
953
+ statuses: %w[active inactive],
954
+ order: 'desc',
955
+ limit: '5',
956
+ )
957
+
958
+ expect(organization_memberships.data.size).to eq(1)
959
+ expect(organization_memberships.data[0].user_id).to eq('user_01HXYSZBKQE2N3NHBKZHDP1X5X')
960
+ end
961
+ end
962
+ end
936
963
  end
937
964
 
938
965
  describe '.create_organization_membership' do
@@ -988,6 +1015,56 @@ describe WorkOS::UserManagement do
988
1015
  end
989
1016
  end
990
1017
 
1018
+ describe '.deactivate_organization_membership' do
1019
+ context 'with a valid id' do
1020
+ it 'returns a organization membership' do
1021
+ VCR.use_cassette 'user_management/deactivate_organization_membership' do
1022
+ organization_membership = described_class.deactivate_organization_membership(
1023
+ id: 'om_01HXYT0G3H5QG9YTSHSHFZQE6D',
1024
+ )
1025
+
1026
+ expect(organization_membership.id.instance_of?(String))
1027
+ expect(organization_membership.instance_of?(WorkOS::OrganizationMembership))
1028
+ end
1029
+ end
1030
+ end
1031
+
1032
+ context 'with an invalid id' do
1033
+ it 'returns an error' do
1034
+ expect do
1035
+ described_class.deactivate_organization_membership(
1036
+ id: 'invalid_organization_membership_id',
1037
+ ).to raise_error(WorkOS::APIError)
1038
+ end
1039
+ end
1040
+ end
1041
+ end
1042
+
1043
+ describe '.reactivate_organization_membership' do
1044
+ context 'with a valid id' do
1045
+ it 'returns a organization membership' do
1046
+ VCR.use_cassette 'user_management/reactivate_organization_membership' do
1047
+ organization_membership = described_class.reactivate_organization_membership(
1048
+ id: 'om_01HXYT0G3H5QG9YTSHSHFZQE6D',
1049
+ )
1050
+
1051
+ expect(organization_membership.id.instance_of?(String))
1052
+ expect(organization_membership.instance_of?(WorkOS::OrganizationMembership))
1053
+ end
1054
+ end
1055
+ end
1056
+
1057
+ context 'with an invalid id' do
1058
+ it 'returns an error' do
1059
+ expect do
1060
+ described_class.reactivate_organization_membership(
1061
+ id: 'invalid_organization_membership_id',
1062
+ ).to raise_error(WorkOS::APIError)
1063
+ end
1064
+ end
1065
+ end
1066
+ end
1067
+
991
1068
  describe '.get_invitation' do
992
1069
  context 'with a valid id' do
993
1070
  it 'returns an invitation' do
@@ -0,0 +1,64 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: put
5
+ uri: https://api.workos.com/user_management/organization_memberships/om_01HXYT0G3H5QG9YTSHSHFZQE6D/deactivate
6
+ body:
7
+ encoding: UTF-8
8
+ string: ""
9
+ headers:
10
+ Content-Type:
11
+ - application/json
12
+ Accept-Encoding:
13
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
14
+ Accept:
15
+ - "*/*"
16
+ User-Agent:
17
+ - WorkOS; ruby/3.3.0; arm64-darwin23; v4.5.0
18
+ Authorization:
19
+ - Bearer <API_KEY>
20
+ response:
21
+ status:
22
+ code: 200
23
+ message: OK
24
+ headers:
25
+ Date:
26
+ - Wed, 15 May 2024 19:13:06 GMT
27
+ Content-Type:
28
+ - application/json; charset=utf-8
29
+ Transfer-Encoding:
30
+ - chunked
31
+ Connection:
32
+ - keep-alive
33
+ Strict-Transport-Security:
34
+ - max-age=15552000; includeSubDomains
35
+ Vary:
36
+ - Origin, Accept-Encoding
37
+ Access-Control-Allow-Credentials:
38
+ - "true"
39
+ Content-Security-Policy:
40
+ - "default-src 'self';base-uri 'self';block-all-mixed-content;font-src 'self'
41
+ https: data:;frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src
42
+ 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"
43
+ Expect-Ct:
44
+ - max-age=0
45
+ Referrer-Policy:
46
+ - no-referrer
47
+ X-Content-Type-Options:
48
+ - nosniff
49
+ X-Dns-Prefetch-Control:
50
+ - "off"
51
+ X-Download-Options:
52
+ - noopen
53
+ X-Frame-Options:
54
+ - SAMEORIGIN
55
+ X-Permitted-Cross-Domain-Policies:
56
+ - none
57
+ X-Xss-Protection:
58
+ - "0"
59
+ body:
60
+ encoding: ASCII-8BIT
61
+ string: '{"object":"organization_membership","id":"om_01HXYT0G3H5QG9YTSHSHFZQE6D","organization_id":"org_01HRCVHACPY05V2FP0KEBQZYD3","user_id":"user_01HXYSZBKQE2N3NHBKZHDP1X5X","status":"inactive","role":{"slug":"member"},"created_at":"2024-05-15T19:00:05.359Z","updated_at":"2024-05-15T19:13:06.259Z"}'
62
+ http_version:
63
+ recorded_at: Wed, 15 May 2024 19:13:06 GMT
64
+ recorded_with: VCR 5.0.0
@@ -0,0 +1,64 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.workos.com/user_management/organization_memberships?limit=5&order=desc&statuses=inactive&user_id=user_01HXYSZBKQE2N3NHBKZHDP1X5X
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ""
9
+ headers:
10
+ Content-Type:
11
+ - application/json
12
+ Accept-Encoding:
13
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
14
+ Accept:
15
+ - "*/*"
16
+ User-Agent:
17
+ - WorkOS; ruby/3.3.0; arm64-darwin23; v4.5.0
18
+ Authorization:
19
+ - Bearer <API_KEY>
20
+ response:
21
+ status:
22
+ code: 200
23
+ message: OK
24
+ headers:
25
+ Date:
26
+ - Wed, 15 May 2024 19:14:44 GMT
27
+ Content-Type:
28
+ - application/json; charset=utf-8
29
+ Transfer-Encoding:
30
+ - chunked
31
+ Connection:
32
+ - keep-alive
33
+ Strict-Transport-Security:
34
+ - max-age=15552000; includeSubDomains
35
+ Vary:
36
+ - Origin, Accept-Encoding
37
+ Access-Control-Allow-Credentials:
38
+ - "true"
39
+ Content-Security-Policy:
40
+ - "default-src 'self';base-uri 'self';block-all-mixed-content;font-src 'self'
41
+ https: data:;frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src
42
+ 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"
43
+ Expect-Ct:
44
+ - max-age=0
45
+ Referrer-Policy:
46
+ - no-referrer
47
+ X-Content-Type-Options:
48
+ - nosniff
49
+ X-Dns-Prefetch-Control:
50
+ - "off"
51
+ X-Download-Options:
52
+ - noopen
53
+ X-Frame-Options:
54
+ - SAMEORIGIN
55
+ X-Permitted-Cross-Domain-Policies:
56
+ - none
57
+ X-Xss-Protection:
58
+ - "0"
59
+ body:
60
+ encoding: ASCII-8BIT
61
+ string: '{"object":"list","data":[{"object":"organization_membership","id":"om_01HXYT0G3H5QG9YTSHSHFZQE6D","organization_id":"org_01HRCVHACPY05V2FP0KEBQZYD3","user_id":"user_01HXYSZBKQE2N3NHBKZHDP1X5X","status":"active","role":{"slug":"member"},"created_at":"2024-05-15T19:00:05.359Z","updated_at":"2024-05-15T19:13:06.427Z"}],"list_metadata":{"before":null,"after":null}}'
62
+ http_version:
63
+ recorded_at: Wed, 15 May 2024 19:14:44 GMT
64
+ recorded_with: VCR 5.0.0
@@ -0,0 +1,64 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: put
5
+ uri: https://api.workos.com/user_management/organization_memberships/om_01HXYT0G3H5QG9YTSHSHFZQE6D/reactivate
6
+ body:
7
+ encoding: UTF-8
8
+ string: ""
9
+ headers:
10
+ Content-Type:
11
+ - application/json
12
+ Accept-Encoding:
13
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
14
+ Accept:
15
+ - "*/*"
16
+ User-Agent:
17
+ - WorkOS; ruby/3.3.0; arm64-darwin23; v4.5.0
18
+ Authorization:
19
+ - Bearer <API_KEY>
20
+ response:
21
+ status:
22
+ code: 200
23
+ message: OK
24
+ headers:
25
+ Date:
26
+ - Wed, 15 May 2024 19:13:06 GMT
27
+ Content-Type:
28
+ - application/json; charset=utf-8
29
+ Transfer-Encoding:
30
+ - chunked
31
+ Connection:
32
+ - keep-alive
33
+ Strict-Transport-Security:
34
+ - max-age=15552000; includeSubDomains
35
+ Vary:
36
+ - Origin, Accept-Encoding
37
+ Access-Control-Allow-Credentials:
38
+ - "true"
39
+ Content-Security-Policy:
40
+ - "default-src 'self';base-uri 'self';block-all-mixed-content;font-src 'self'
41
+ https: data:;frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src
42
+ 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"
43
+ Expect-Ct:
44
+ - max-age=0
45
+ Referrer-Policy:
46
+ - no-referrer
47
+ X-Content-Type-Options:
48
+ - nosniff
49
+ X-Dns-Prefetch-Control:
50
+ - "off"
51
+ X-Download-Options:
52
+ - noopen
53
+ X-Frame-Options:
54
+ - SAMEORIGIN
55
+ X-Permitted-Cross-Domain-Policies:
56
+ - none
57
+ X-Xss-Protection:
58
+ - "0"
59
+ body:
60
+ encoding: ASCII-8BIT
61
+ string: '{"object":"organization_membership","id":"om_01HXYT0G3H5QG9YTSHSHFZQE6D","organization_id":"org_01HRCVHACPY05V2FP0KEBQZYD3","user_id":"user_01HXYSZBKQE2N3NHBKZHDP1X5X","status":"active","role":{"slug":"member"},"created_at":"2024-05-15T19:00:05.359Z","updated_at":"2024-05-15T19:13:06.427Z"}'
62
+ http_version:
63
+ recorded_at: Wed, 15 May 2024 19:13:06 GMT
64
+ recorded_with: VCR 5.0.0
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: workos
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.5.0
4
+ version: 4.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - WorkOS
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-05-03 00:00:00.000000000 Z
11
+ date: 2024-05-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -274,6 +274,7 @@ files:
274
274
  - spec/support/fixtures/vcr_cassettes/user_management/create_organization_membership/valid.yml
275
275
  - spec/support/fixtures/vcr_cassettes/user_management/create_user_invalid.yml
276
276
  - spec/support/fixtures/vcr_cassettes/user_management/create_user_valid.yml
277
+ - spec/support/fixtures/vcr_cassettes/user_management/deactivate_organization_membership.yml
277
278
  - spec/support/fixtures/vcr_cassettes/user_management/delete_organization_membership/invalid.yml
278
279
  - spec/support/fixtures/vcr_cassettes/user_management/delete_organization_membership/valid.yml
279
280
  - spec/support/fixtures/vcr_cassettes/user_management/delete_user/invalid.yml
@@ -295,8 +296,10 @@ files:
295
296
  - spec/support/fixtures/vcr_cassettes/user_management/list_invitations/with_organization_id.yml
296
297
  - spec/support/fixtures/vcr_cassettes/user_management/list_organization_memberships/no_options.yml
297
298
  - spec/support/fixtures/vcr_cassettes/user_management/list_organization_memberships/with_options.yml
299
+ - spec/support/fixtures/vcr_cassettes/user_management/list_organization_memberships/with_statuses_option.yml
298
300
  - spec/support/fixtures/vcr_cassettes/user_management/list_users/no_options.yml
299
301
  - spec/support/fixtures/vcr_cassettes/user_management/list_users/with_options.yml
302
+ - spec/support/fixtures/vcr_cassettes/user_management/reactivate_organization_membership.yml
300
303
  - spec/support/fixtures/vcr_cassettes/user_management/reset_password/invalid.yml
301
304
  - spec/support/fixtures/vcr_cassettes/user_management/reset_password/valid.yml
302
305
  - spec/support/fixtures/vcr_cassettes/user_management/revoke_invitation/invalid.yml
@@ -471,6 +474,7 @@ test_files:
471
474
  - spec/support/fixtures/vcr_cassettes/user_management/create_organization_membership/valid.yml
472
475
  - spec/support/fixtures/vcr_cassettes/user_management/create_user_invalid.yml
473
476
  - spec/support/fixtures/vcr_cassettes/user_management/create_user_valid.yml
477
+ - spec/support/fixtures/vcr_cassettes/user_management/deactivate_organization_membership.yml
474
478
  - spec/support/fixtures/vcr_cassettes/user_management/delete_organization_membership/invalid.yml
475
479
  - spec/support/fixtures/vcr_cassettes/user_management/delete_organization_membership/valid.yml
476
480
  - spec/support/fixtures/vcr_cassettes/user_management/delete_user/invalid.yml
@@ -492,8 +496,10 @@ test_files:
492
496
  - spec/support/fixtures/vcr_cassettes/user_management/list_invitations/with_organization_id.yml
493
497
  - spec/support/fixtures/vcr_cassettes/user_management/list_organization_memberships/no_options.yml
494
498
  - spec/support/fixtures/vcr_cassettes/user_management/list_organization_memberships/with_options.yml
499
+ - spec/support/fixtures/vcr_cassettes/user_management/list_organization_memberships/with_statuses_option.yml
495
500
  - spec/support/fixtures/vcr_cassettes/user_management/list_users/no_options.yml
496
501
  - spec/support/fixtures/vcr_cassettes/user_management/list_users/with_options.yml
502
+ - spec/support/fixtures/vcr_cassettes/user_management/reactivate_organization_membership.yml
497
503
  - spec/support/fixtures/vcr_cassettes/user_management/reset_password/invalid.yml
498
504
  - spec/support/fixtures/vcr_cassettes/user_management/reset_password/valid.yml
499
505
  - spec/support/fixtures/vcr_cassettes/user_management/revoke_invitation/invalid.yml