use channel pager
This commit is contained in:
parent
9d87b30e0c
commit
75fe8ee78b
@ -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
|
||||
|
||||
@ -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(
|
||||
|
||||
@ -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(
|
||||
|
||||
@ -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
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user