Update to use internal fields rather than creating additional objects.
This commit is contained in:
parent
9a872fd388
commit
d331ad8ecf
@ -13,8 +13,6 @@ import (
|
||||
"time"
|
||||
|
||||
absser "github.com/microsoft/kiota-abstractions-go/serialization"
|
||||
kioser "github.com/microsoft/kiota-serialization-json-go"
|
||||
msgraphsdk "github.com/microsoftgraph/msgraph-sdk-go"
|
||||
"github.com/microsoftgraph/msgraph-sdk-go/models"
|
||||
"github.com/pkg/errors"
|
||||
|
||||
@ -281,10 +279,11 @@ func (col *Collection) streamItems(ctx context.Context) {
|
||||
return
|
||||
}
|
||||
|
||||
service := col.service.(graph.Service)
|
||||
|
||||
byteCount, err := serializeFunc(
|
||||
ctx,
|
||||
col.service.Client(),
|
||||
kioser.NewJsonSerializationWriter(),
|
||||
&service,
|
||||
col.data,
|
||||
response,
|
||||
user)
|
||||
@ -342,8 +341,7 @@ func getModTime(mt modTimer) time.Time {
|
||||
// responses into data.Stream items contained within the Collection
|
||||
type GraphSerializeFunc func(
|
||||
ctx context.Context,
|
||||
client *msgraphsdk.GraphServiceClient,
|
||||
objectWriter *kioser.JsonSerializationWriter,
|
||||
service *graph.Service, // TODO: Keepers: Not sure how to have the interface use Serialize without updating all the files.
|
||||
dataChannel chan<- data.Stream,
|
||||
parsable absser.Parsable,
|
||||
user string,
|
||||
@ -353,16 +351,13 @@ type GraphSerializeFunc func(
|
||||
// data.Stream objects. Returns an error the process finishes unsuccessfully.
|
||||
func serializeAndStreamEvent(
|
||||
ctx context.Context,
|
||||
client *msgraphsdk.GraphServiceClient,
|
||||
objectWriter *kioser.JsonSerializationWriter,
|
||||
service *graph.Service,
|
||||
dataChannel chan<- data.Stream,
|
||||
parsable absser.Parsable,
|
||||
user string,
|
||||
) (int, error) {
|
||||
var err error
|
||||
|
||||
defer objectWriter.Close()
|
||||
|
||||
event, ok := parsable.(models.Eventable)
|
||||
if !ok {
|
||||
return 0, fmt.Errorf("expected Eventable, got %T", parsable)
|
||||
@ -372,7 +367,8 @@ func serializeAndStreamEvent(
|
||||
var retriesErr error
|
||||
|
||||
for count := 0; count < numberOfRetries; count++ {
|
||||
attached, err := client.
|
||||
attached, err := service.
|
||||
Client().
|
||||
UsersById(user).
|
||||
EventsById(*event.GetId()).
|
||||
Attachments().
|
||||
@ -395,12 +391,7 @@ func serializeAndStreamEvent(
|
||||
}
|
||||
}
|
||||
|
||||
err = objectWriter.WriteObjectValue("", event)
|
||||
if err != nil {
|
||||
return 0, support.SetNonRecoverableError(errors.Wrap(err, *event.GetId()))
|
||||
}
|
||||
|
||||
byteArray, err := objectWriter.GetSerializedContent()
|
||||
byteArray, err := service.Serialize(event)
|
||||
if err != nil {
|
||||
return 0, support.WrapAndAppend(*event.GetId(), errors.Wrap(err, "serializing content"), nil)
|
||||
}
|
||||
@ -420,25 +411,17 @@ func serializeAndStreamEvent(
|
||||
// serializeAndStreamContact is a GraphSerializeFunc for models.Contactable
|
||||
func serializeAndStreamContact(
|
||||
ctx context.Context,
|
||||
client *msgraphsdk.GraphServiceClient,
|
||||
objectWriter *kioser.JsonSerializationWriter,
|
||||
service *graph.Service,
|
||||
dataChannel chan<- data.Stream,
|
||||
parsable absser.Parsable,
|
||||
user string,
|
||||
) (int, error) {
|
||||
defer objectWriter.Close()
|
||||
|
||||
contact, ok := parsable.(models.Contactable)
|
||||
if !ok {
|
||||
return 0, fmt.Errorf("expected Contactable, got %T", parsable)
|
||||
}
|
||||
|
||||
err := objectWriter.WriteObjectValue("", contact)
|
||||
if err != nil {
|
||||
return 0, support.SetNonRecoverableError(errors.Wrap(err, *contact.GetId()))
|
||||
}
|
||||
|
||||
bs, err := objectWriter.GetSerializedContent()
|
||||
bs, err := service.Serialize(contact)
|
||||
if err != nil {
|
||||
return 0, support.WrapAndAppend(*contact.GetId(), err, nil)
|
||||
}
|
||||
@ -458,16 +441,13 @@ func serializeAndStreamContact(
|
||||
// serializeAndStreamMessage is the GraphSerializeFunc for models.Messageable
|
||||
func serializeAndStreamMessage(
|
||||
ctx context.Context,
|
||||
client *msgraphsdk.GraphServiceClient,
|
||||
objectWriter *kioser.JsonSerializationWriter,
|
||||
service *graph.Service,
|
||||
dataChannel chan<- data.Stream,
|
||||
parsable absser.Parsable,
|
||||
user string,
|
||||
) (int, error) {
|
||||
var err error
|
||||
|
||||
defer objectWriter.Close()
|
||||
|
||||
msg, ok := parsable.(models.Messageable)
|
||||
if !ok {
|
||||
return 0, fmt.Errorf("expected Messageable, got %T", parsable)
|
||||
@ -478,7 +458,8 @@ func serializeAndStreamMessage(
|
||||
var retriesErr error
|
||||
|
||||
for count := 0; count < numberOfRetries; count++ {
|
||||
attached, err := client.
|
||||
attached, err := service.
|
||||
Client().
|
||||
UsersById(user).
|
||||
MessagesById(*msg.GetId()).
|
||||
Attachments().
|
||||
@ -497,12 +478,7 @@ func serializeAndStreamMessage(
|
||||
}
|
||||
}
|
||||
|
||||
err = objectWriter.WriteObjectValue("", msg)
|
||||
if err != nil {
|
||||
return 0, support.SetNonRecoverableError(errors.Wrapf(err, "%s", *msg.GetId()))
|
||||
}
|
||||
|
||||
bs, err := objectWriter.GetSerializedContent()
|
||||
bs, err := service.Serialize(msg)
|
||||
if err != nil {
|
||||
err = support.WrapAndAppend(*msg.GetId(), errors.Wrap(err, "serializing mail content"), nil)
|
||||
return 0, support.SetNonRecoverableError(err)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user