use channel pager

This commit is contained in:
neha-Gupta1 2023-09-01 18:28:17 +05:30
parent 9d87b30e0c
commit 75fe8ee78b
4 changed files with 9 additions and 65 deletions

View File

@ -153,7 +153,9 @@ func populateCollections(
// prevDelta = dp.Delta
// prevPathStr = dp.Path // do not log: pii; log prevPath instead
// prevPath path.Path
ictx = clues.Add(
// TODO: update this path
previousPath string
ictx = clues.Add(
ctx,
"channel_id", cID)
// "previous_delta", pii.SafeURL{
@ -182,7 +184,7 @@ func populateCollections(
// TODO: the handler should provide this implementation.
items, err := collectItems(
ctx,
bh.NewMessagePager(qp.ProtectedResource.ID(), ptr.Val(c.GetId())))
bh.NewMessagePager(qp.ProtectedResource.ID(), ptr.Val(c.GetId()), previousPath))
if err != nil {
el.AddRecoverable(ctx, clues.Stack(err))
continue

View File

@ -33,7 +33,7 @@ func (gHandler groupBackupHandler) GetChannelByID(
func (gHandler groupBackupHandler) NewChannelsPager(
teamID string,
) api.ChannelDeltaEnumerator {
) api.Pager[models.Channelable] {
return gHandler.ac.NewChannelPager(teamID)
}
@ -46,9 +46,9 @@ func (gHandler groupBackupHandler) GetMessageByID(
}
func (gHandler groupBackupHandler) NewMessagePager(
teamID, channelID string,
) api.ChannelMessageDeltaEnumerator {
return gHandler.ac.NewMessagePager(teamID, channelID)
teamID, channelID, prevDelta string,
) api.DeltaPager[models.ChatMessageable] {
return gHandler.ac.NewChannelMessageDeltaPager(teamID, channelID, prevDelta)
}
func (gHandler groupBackupHandler) GetMessageReplies(

View File

@ -23,7 +23,7 @@ type BackupHandler interface {
teamID, channelID, itemID string,
) (models.ChatMessageable, error)
NewMessagePager(
teamID, channelID string,
teamID, channelID, prevDelta string,
) api.DeltaPager[models.ChatMessageable]
GetMessageReplies(

View File

@ -51,13 +51,6 @@ func (p *channelMessageDeltaPageCtrl) ValuesIn(l PageLinker) ([]models.ChatMessa
return getValues[models.ChatMessageable](l)
}
type ChannelDeltaEnumerator interface {
PageLinker
ValuesInPageLinker[models.Channelable]
SetNextLinker
GetPage(ctx context.Context) (PageLinker, error)
}
func (c Channels) NewChannelMessageDeltaPager(
teamID, channelID, prevDelta string,
) *channelMessageDeltaPageCtrl {
@ -87,57 +80,6 @@ func (c Channels) NewChannelMessageDeltaPager(
}
}
// var _ ChannelMessageDeltaEnumerator = &ChannelMessageDeltaPageCtrl{}
var _ Pager[models.Channelable] = &channelPageCtrl{}
type ChannelMessageDeltaPageCtrl struct {
gs graph.Servicer
builder *teams.ItemChannelsItemMessagesDeltaRequestBuilder
options *teams.ItemChannelsItemMessagesDeltaRequestBuilderGetRequestConfiguration
}
func (c Channels) NewMessagePager(
teamID, channelID string,
fields []string,
) *ChannelMessageDeltaPageCtrl {
res := &ChannelMessageDeltaPageCtrl{
gs: c.Stable,
options: nil,
builder: c.Stable.
Client().
Teams().
ByTeamId(teamID).
Channels().
ByChannelId(channelID).
Messages().
Delta(),
}
return res
}
func (p *ChannelMessageDeltaPageCtrl) SetNext(nextLink string) {
p.builder = teams.NewItemChannelsItemMessagesDeltaRequestBuilder(nextLink, p.gs.Adapter())
}
func (p *ChannelMessageDeltaPageCtrl) GetPage(ctx context.Context) (DeltaPageLinker, error) {
var (
resp DeltaPageLinker
err error
)
resp, err = p.builder.Get(ctx, p.options)
if err != nil {
return nil, graph.Stack(ctx, err)
}
return resp, nil
}
func (p *ChannelMessageDeltaPageCtrl) ValuesIn(l PageLinker) ([]models.ChatMessageable, error) {
return getValues[models.ChatMessageable](l)
}
// ---------------------------------------------------------------------------
// non delta channel message pager
// ---------------------------------------------------------------------------