From 965238abde150c8e4bc54fe12a9faa574148d3d3 Mon Sep 17 00:00:00 2001 From: Amy Hanlon Date: Thu, 7 Nov 2024 16:11:06 -0800 Subject: [PATCH 1/5] Add new organization domain fields --- pkg/organizations/client.go | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/pkg/organizations/client.go b/pkg/organizations/client.go index c4a5fbf8..bc47edef 100644 --- a/pkg/organizations/client.go +++ b/pkg/organizations/client.go @@ -60,6 +60,22 @@ func (c *Client) init() { } } +type OrganizationDomainState string + +const ( + // Pending OrganizationDomainState = "pending" + // Verified OrganizationDomainState = "verified" + Failed OrganizationDomainState = "failed" + LegacyVerified OrganizationDomainState = "legacy_verified" +) + +type OrganizationDomainVerificationStrategy string + +const ( + Dns OrganizationDomainVerificationStrategy = "dns" + Manual OrganizationDomainVerificationStrategy = "manual" +) + // OrganizationDomain contains data about an Organization's Domains. type OrganizationDomain struct { // The Organization Domain's unique identifier. @@ -67,6 +83,15 @@ type OrganizationDomain struct { // The domain value Domain string `json:"domain"` + + // Verification state of the domain. + State OrganizationDomainState `json:"state"` + + // Strategy used to verify the domain. + VerificationStrategy OrganizationDomainVerificationStrategy `json:"verification_strategy,omitempty"` + + // Token used for DNS verification. + VerificationToken string `json:"verification_token,omitempty"` } // Organization contains data about a WorkOS Organization. From 8cbfa2f87ea3b0198db38a6000313268f5ecad37 Mon Sep 17 00:00:00 2001 From: Amy Hanlon Date: Thu, 7 Nov 2024 17:31:33 -0800 Subject: [PATCH 2/5] fix state consts --- pkg/organizations/client.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkg/organizations/client.go b/pkg/organizations/client.go index bc47edef..2c39d626 100644 --- a/pkg/organizations/client.go +++ b/pkg/organizations/client.go @@ -63,10 +63,10 @@ func (c *Client) init() { type OrganizationDomainState string const ( - // Pending OrganizationDomainState = "pending" - // Verified OrganizationDomainState = "verified" - Failed OrganizationDomainState = "failed" - LegacyVerified OrganizationDomainState = "legacy_verified" + OrganizationDomainPending OrganizationDomainState = "pending" + OrganizationDomainVerified OrganizationDomainState = "verified" + OrganizationDomainFailed OrganizationDomainState = "failed" + OrganizationDomainLegacyVerified OrganizationDomainState = "legacy_verified" ) type OrganizationDomainVerificationStrategy string From 204ca8d72cee3c41a74894f0e0f970fdf5356200 Mon Sep 17 00:00:00 2001 From: Amy Hanlon Date: Thu, 7 Nov 2024 17:39:50 -0800 Subject: [PATCH 3/5] add organization ID --- pkg/organizations/client.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkg/organizations/client.go b/pkg/organizations/client.go index 2c39d626..6cad3760 100644 --- a/pkg/organizations/client.go +++ b/pkg/organizations/client.go @@ -84,6 +84,9 @@ type OrganizationDomain struct { // The domain value Domain string `json:"domain"` + // The Organization's unique identifier. + OrganizationID string `json:"organization_id"` + // Verification state of the domain. State OrganizationDomainState `json:"state"` From b2a2d1ea8710cd94165d1ec66e108c0c8fc6c130 Mon Sep 17 00:00:00 2001 From: Amy Hanlon Date: Thu, 7 Nov 2024 17:40:07 -0800 Subject: [PATCH 4/5] update tests --- pkg/organizations/client_test.go | 114 +++++++++++++++++++------------ 1 file changed, 70 insertions(+), 44 deletions(-) diff --git a/pkg/organizations/client_test.go b/pkg/organizations/client_test.go index f2426f35..400cf3b4 100644 --- a/pkg/organizations/client_test.go +++ b/pkg/organizations/client_test.go @@ -38,9 +38,11 @@ func TestGetOrganization(t *testing.T) { Name: "Foo Corp", AllowProfilesOutsideOrganization: false, Domains: []OrganizationDomain{ - OrganizationDomain{ - ID: "organization_domain_id", - Domain: "foo-corp.com", + { + ID: "organization_domain_id", + Domain: "foo-corp.com", + OrganizationID: "organization_id", + State: "verified", }, }, }, @@ -79,9 +81,11 @@ func getOrganizationTestHandler(w http.ResponseWriter, r *http.Request) { Name: "Foo Corp", AllowProfilesOutsideOrganization: false, Domains: []OrganizationDomain{ - OrganizationDomain{ - ID: "organization_domain_id", - Domain: "foo-corp.com", + { + ID: "organization_domain_id", + Domain: "foo-corp.com", + OrganizationID: "organization_id", + State: "verified", }, }, }) @@ -118,14 +122,16 @@ func TestListOrganizations(t *testing.T) { expected: ListOrganizationsResponse{ Data: []Organization{ - Organization{ + { ID: "organization_id", Name: "Foo Corp", AllowProfilesOutsideOrganization: false, Domains: []OrganizationDomain{ - OrganizationDomain{ - ID: "organization_domain_id", - Domain: "foo-corp.com", + { + ID: "organization_domain_id", + Domain: "foo-corp.com", + OrganizationID: "organization_id", + State: "verified", }, }, }, @@ -175,14 +181,16 @@ func listOrganizationsTestHandler(w http.ResponseWriter, r *http.Request) { }{ ListOrganizationsResponse: ListOrganizationsResponse{ Data: []Organization{ - Organization{ + { ID: "organization_id", Name: "Foo Corp", AllowProfilesOutsideOrganization: false, Domains: []OrganizationDomain{ - OrganizationDomain{ - ID: "organization_domain_id", - Domain: "foo-corp.com", + { + ID: "organization_domain_id", + Domain: "foo-corp.com", + OrganizationID: "organization_id", + State: "verified", }, }, }, @@ -229,9 +237,11 @@ func TestCreateOrganization(t *testing.T) { Name: "Foo Corp", AllowProfilesOutsideOrganization: false, Domains: []OrganizationDomain{ - OrganizationDomain{ - ID: "organization_domain_id", - Domain: "foo-corp.com", + { + ID: "organization_domain_id", + Domain: "foo-corp.com", + OrganizationID: "organization_id", + State: "verified", }, }, }, @@ -244,7 +254,7 @@ func TestCreateOrganization(t *testing.T) { options: CreateOrganizationOpts{ Name: "Foo Corp", DomainData: []OrganizationDomainData{ - OrganizationDomainData{ + { Domain: "foo-corp.com", State: "verified", }, @@ -255,9 +265,11 @@ func TestCreateOrganization(t *testing.T) { Name: "Foo Corp", AllowProfilesOutsideOrganization: false, Domains: []OrganizationDomain{ - OrganizationDomain{ - ID: "organization_domain_id", - Domain: "foo-corp.com", + { + ID: "organization_domain_id", + Domain: "foo-corp.com", + OrganizationID: "organization_id", + State: "verified", }, }, }, @@ -346,9 +358,11 @@ func createOrganizationTestHandler(w http.ResponseWriter, r *http.Request) { Name: "Foo Corp", AllowProfilesOutsideOrganization: false, Domains: []OrganizationDomain{ - OrganizationDomain{ - ID: "organization_domain_id", - Domain: "foo-corp.com", + { + ID: "organization_domain_id", + Domain: "foo-corp.com", + OrganizationID: "organization_id", + State: "verified", }, }, }) @@ -390,13 +404,17 @@ func TestUpdateOrganization(t *testing.T) { Name: "Foo Corp", AllowProfilesOutsideOrganization: false, Domains: []OrganizationDomain{ - OrganizationDomain{ - ID: "organization_domain_id", - Domain: "foo-corp.com", + { + ID: "organization_domain_id", + Domain: "foo-corp.com", + OrganizationID: "organization_id", + State: "verified", }, - OrganizationDomain{ - ID: "organization_domain_id_2", - Domain: "foo-corp.io", + { + ID: "organization_domain_id_2", + Domain: "foo-corp.io", + OrganizationID: "organization_id", + State: "verified", }, }, }, @@ -410,11 +428,11 @@ func TestUpdateOrganization(t *testing.T) { Organization: "organization_id", Name: "Foo Corp", DomainData: []OrganizationDomainData{ - OrganizationDomainData{ + { Domain: "foo-corp.com", State: "verified", }, - OrganizationDomainData{ + { Domain: "foo-corp.io", State: "verified", }, @@ -425,13 +443,17 @@ func TestUpdateOrganization(t *testing.T) { Name: "Foo Corp", AllowProfilesOutsideOrganization: false, Domains: []OrganizationDomain{ - OrganizationDomain{ - ID: "organization_domain_id", - Domain: "foo-corp.com", + { + ID: "organization_domain_id", + Domain: "foo-corp.com", + OrganizationID: "organization_id", + State: "verified", }, - OrganizationDomain{ - ID: "organization_domain_id_2", - Domain: "foo-corp.io", + { + ID: "organization_domain_id_2", + Domain: "foo-corp.io", + OrganizationID: "organization_id", + State: "verified", }, }, }, @@ -497,13 +519,17 @@ func updateOrganizationTestHandler(w http.ResponseWriter, r *http.Request) { Name: "Foo Corp", AllowProfilesOutsideOrganization: false, Domains: []OrganizationDomain{ - OrganizationDomain{ - ID: "organization_domain_id", - Domain: "foo-corp.com", + { + ID: "organization_domain_id", + Domain: "foo-corp.com", + OrganizationID: "organization_id", + State: "verified", }, - OrganizationDomain{ - ID: "organization_domain_id_2", - Domain: "foo-corp.io", + { + ID: "organization_domain_id_2", + Domain: "foo-corp.io", + OrganizationID: "organization_id", + State: "verified", }, }, }) From da09e65d6c9d6692464b641ba0dc28c6b33ae1ea Mon Sep 17 00:00:00 2001 From: Amy Hanlon Date: Thu, 7 Nov 2024 17:43:17 -0800 Subject: [PATCH 5/5] update more tests --- pkg/organizations/organizations_test.go | 42 +++++++++++++++---------- 1 file changed, 26 insertions(+), 16 deletions(-) diff --git a/pkg/organizations/organizations_test.go b/pkg/organizations/organizations_test.go index 4b4fa996..09da018e 100644 --- a/pkg/organizations/organizations_test.go +++ b/pkg/organizations/organizations_test.go @@ -25,9 +25,11 @@ func TestOrganizationsGetOrganization(t *testing.T) { Name: "Foo Corp", AllowProfilesOutsideOrganization: false, Domains: []OrganizationDomain{ - OrganizationDomain{ - ID: "organization_domain_id", - Domain: "foo-corp.com", + { + ID: "organization_domain_id", + Domain: "foo-corp.com", + OrganizationID: "organization_id", + State: "verified", }, }, } @@ -51,14 +53,16 @@ func TestOrganizationsListOrganizations(t *testing.T) { expectedResponse := ListOrganizationsResponse{ Data: []Organization{ - Organization{ + { ID: "organization_id", Name: "Foo Corp", AllowProfilesOutsideOrganization: false, Domains: []OrganizationDomain{ - OrganizationDomain{ - ID: "organization_domain_id", - Domain: "foo-corp.com", + { + ID: "organization_domain_id", + Domain: "foo-corp.com", + OrganizationID: "organization_id", + State: "verified", }, }, }, @@ -93,9 +97,11 @@ func TestOrganizationsCreateOrganization(t *testing.T) { Name: "Foo Corp", AllowProfilesOutsideOrganization: false, Domains: []OrganizationDomain{ - OrganizationDomain{ - ID: "organization_domain_id", - Domain: "foo-corp.com", + { + ID: "organization_domain_id", + Domain: "foo-corp.com", + OrganizationID: "organization_id", + State: "verified", }, }, } @@ -126,13 +132,17 @@ func TestOrganizationsUpdateOrganization(t *testing.T) { Name: "Foo Corp", AllowProfilesOutsideOrganization: false, Domains: []OrganizationDomain{ - OrganizationDomain{ - ID: "organization_domain_id", - Domain: "foo-corp.com", + { + ID: "organization_domain_id", + Domain: "foo-corp.com", + OrganizationID: "organization_id", + State: "verified", }, - OrganizationDomain{ - ID: "organization_domain_id_2", - Domain: "foo-corp.io", + { + ID: "organization_domain_id_2", + Domain: "foo-corp.io", + OrganizationID: "organization_id", + State: "verified", }, }, }