From 97c6d631b57ea5215859648c56097c16461cb2c3 Mon Sep 17 00:00:00 2001 From: Danny Adams Date: Fri, 27 Jan 2023 12:07:32 -0500 Subject: [PATCH 1/2] Updates to /graph/betasdk/beta_client_test.go Verifies service functionality. --- .../graph/betasdk/beta_client_test.go | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/src/internal/connector/graph/betasdk/beta_client_test.go b/src/internal/connector/graph/betasdk/beta_client_test.go index 84f2db6c5..16b09a101 100644 --- a/src/internal/connector/graph/betasdk/beta_client_test.go +++ b/src/internal/connector/graph/betasdk/beta_client_test.go @@ -8,6 +8,7 @@ import ( "github.com/stretchr/testify/suite" "github.com/alcionai/corso/src/internal/connector/graph" + "github.com/alcionai/corso/src/internal/connector/graph/betasdk/models" "github.com/alcionai/corso/src/internal/tester" "github.com/alcionai/corso/src/pkg/account" ) @@ -78,3 +79,29 @@ func (suite *BetaClientSuite) TestBasicClientGetFunctionality() { } } } + +func (suite *BetaClientSuite) TestServiceRequirements() { + t := suite.T() + + adpt, err := graph.CreateAdapter( + suite.credentials.AzureTenantID, + suite.credentials.AzureClientID, + suite.credentials.AzureClientSecret, + ) + require.NoError(t, err) + + service := NewService(adpt) + require.NotNil(t, service) + + testPage := models.NewSitePage() + name := "testFile" + desc := "working with parsing" + + testPage.SetName(&name) + testPage.SetDescription(&desc) + + byteArray, err := service.Serialize(testPage) + assert.NotEmpty(t, byteArray) + assert.NoError(t, err) + +} From de5bc553d094cd431c4a9393ecb4194b166c3719 Mon Sep 17 00:00:00 2001 From: Danny Adams Date: Fri, 27 Jan 2023 12:08:21 -0500 Subject: [PATCH 2/2] Updates to /graph/betasdk/beta_service.go Addition of constructor and serialize function. --- .../connector/graph/betasdk/beta_service.go | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/src/internal/connector/graph/betasdk/beta_service.go b/src/internal/connector/graph/betasdk/beta_service.go index aa65dc9c1..a528c7f9c 100644 --- a/src/internal/connector/graph/betasdk/beta_service.go +++ b/src/internal/connector/graph/betasdk/beta_service.go @@ -1,7 +1,9 @@ package betasdk import ( + absser "github.com/microsoft/kiota-abstractions-go/serialization" msgraphsdk "github.com/microsoftgraph/msgraph-sdk-go" + "github.com/pkg/errors" ) // Service wraps BetaClient's functionality. @@ -18,3 +20,25 @@ func (s Service) Adapter() *msgraphsdk.GraphRequestAdapter { func (s Service) Client() *BetaClient { return s.client } + +func NewService(adpt *msgraphsdk.GraphRequestAdapter) *Service { + return &Service{ + client: NewBetaClient(adpt), + } +} + +// Seraialize writes an M365 parsable object into a byte array using the built-in +// application/json writer within the adapter. +func (s Service) Serialize(object absser.Parsable) ([]byte, error) { + writer, err := s.Adapter().GetSerializationWriterFactory().GetSerializationWriter("application/json") + if err != nil || writer == nil { + return nil, errors.Wrap(err, "creating json serialization writer") + } + + err = writer.WriteObjectValue("", object) + if err != nil { + return nil, errors.Wrap(err, "writeObjecValue serialization") + } + + return writer.GetSerializedContent() +}