workos 4.5.0 → 4.6.0

Sign up to get free protection for your applications and to get access to all the features.
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