From f47e9b91751e6775d6acd1c798419b0ab4174634 Mon Sep 17 00:00:00 2001 From: Abin Date: Thu, 27 Apr 2023 09:47:50 +0530 Subject: [PATCH] Do not duplicate code to create delta pagers --- .../connector/exchange/api/contacts.go | 43 ++++++++++--------- src/internal/connector/exchange/api/mail.go | 34 ++++++++++----- 2 files changed, 46 insertions(+), 31 deletions(-) diff --git a/src/internal/connector/exchange/api/contacts.go b/src/internal/connector/exchange/api/contacts.go index 429c4550be..5e88e5ec3a 100644 --- a/src/internal/connector/exchange/api/contacts.go +++ b/src/internal/connector/exchange/api/contacts.go @@ -268,6 +268,27 @@ type contactDeltaPager struct { options *users.ItemContactFoldersItemContactsDeltaRequestBuilderGetRequestConfiguration } +func getContactDeltaBuilder( + ctx context.Context, + gs graph.Servicer, + user string, + directoryID string, + options *users.ItemContactFoldersItemContactsDeltaRequestBuilderGetRequestConfiguration, +) *users.ItemContactFoldersItemContactsDeltaRequestBuilder { + builder := gs.Client().UsersById(user).ContactFoldersById(directoryID).Contacts().Delta() + if len(os.Getenv("CORSO_URL_LOGGING")) > 0 { + gri, err := builder.ToGetRequestInformation(ctx, options) + if err != nil { + logger.CtxErr(ctx, err).Error("getting builder info") + } else { + logger.Ctx(ctx). + Infow("builder path-parameters", "path_parameters", gri.PathParameters) + } + } + + return builder +} + func NewContactDeltaPager( ctx context.Context, gs graph.Servicer, @@ -296,16 +317,7 @@ func NewContactDeltaPager( if deltaURL != "" { builder = users.NewItemContactFoldersItemContactsDeltaRequestBuilder(deltaURL, gs.Adapter()) } else { - builder = gs.Client().UsersById(user).ContactFoldersById(directoryID).Contacts().Delta() - if len(os.Getenv("CORSO_URL_LOGGING")) > 0 { - gri, err := builder.ToGetRequestInformation(ctx, options) - if err != nil { - logger.CtxErr(ctx, err).Error("getting builder info") - } else { - logger.Ctx(ctx). - Infow("builder path-parameters", "path_parameters", gri.PathParameters) - } - } + builder = getContactDeltaBuilder(ctx, gs, user, directoryID, options) } return &contactDeltaPager{gs, user, directoryID, builder, options}, nil @@ -325,16 +337,7 @@ func (p *contactDeltaPager) setNext(nextLink string) { } func (p *contactDeltaPager) reset(ctx context.Context) { - p.builder = p.gs.Client().UsersById(p.user).ContactFoldersById(p.directoryID).Contacts().Delta() - if len(os.Getenv("CORSO_URL_LOGGING")) > 0 { - gri, err := p.builder.ToGetRequestInformation(ctx, p.options) - if err != nil { - logger.CtxErr(ctx, err).Error("getting builder info") - } else { - logger.Ctx(ctx). - Infow("builder path-parameters", "path_parameters", gri.PathParameters) - } - } + p.builder = getContactDeltaBuilder(ctx, p.gs, p.user, p.directoryID, p.options) } func (p *contactDeltaPager) valuesIn(pl api.PageLinker) ([]getIDAndAddtler, error) { diff --git a/src/internal/connector/exchange/api/mail.go b/src/internal/connector/exchange/api/mail.go index 2840d1242a..9035f8d5b4 100644 --- a/src/internal/connector/exchange/api/mail.go +++ b/src/internal/connector/exchange/api/mail.go @@ -462,6 +462,28 @@ type mailDeltaPager struct { options *users.ItemMailFoldersItemMessagesDeltaRequestBuilderGetRequestConfiguration } +func getMailDeltaBuilder( + ctx context.Context, + gs graph.Servicer, + user string, + directoryID string, + options *users.ItemMailFoldersItemMessagesDeltaRequestBuilderGetRequestConfiguration, +) *users.ItemMailFoldersItemMessagesDeltaRequestBuilder { + builder := gs.Client().UsersById(user).MailFoldersById(directoryID).Messages().Delta() + + if len(os.Getenv("CORSO_URL_LOGGING")) > 0 { + gri, err := builder.ToGetRequestInformation(ctx, options) + if err != nil { + logger.CtxErr(ctx, err).Error("getting builder info") + } else { + logger.Ctx(ctx). + Infow("builder path-parameters", "path_parameters", gri.PathParameters) + } + } + + return builder +} + func NewMailDeltaPager( ctx context.Context, gs graph.Servicer, @@ -491,17 +513,7 @@ func NewMailDeltaPager( if len(oldDelta) > 0 { builder = users.NewItemMailFoldersItemMessagesDeltaRequestBuilder(oldDelta, gs.Adapter()) } else { - builder = gs.Client().UsersById(user).MailFoldersById(directoryID).Messages().Delta() - - if len(os.Getenv("CORSO_URL_LOGGING")) > 0 { - gri, err := builder.ToGetRequestInformation(ctx, options) - if err != nil { - logger.CtxErr(ctx, err).Error("getting builder info") - } else { - logger.Ctx(ctx). - Infow("builder path-parameters", "path_parameters", gri.PathParameters) - } - } + builder = getMailDeltaBuilder(ctx, gs, user, directoryID, options) } return &mailDeltaPager{gs, user, directoryID, builder, options}, nil