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() +}