use channel pager
This commit is contained in:
parent
9d87b30e0c
commit
75fe8ee78b
@ -153,7 +153,9 @@ func populateCollections(
|
|||||||
// prevDelta = dp.Delta
|
// prevDelta = dp.Delta
|
||||||
// prevPathStr = dp.Path // do not log: pii; log prevPath instead
|
// prevPathStr = dp.Path // do not log: pii; log prevPath instead
|
||||||
// prevPath path.Path
|
// prevPath path.Path
|
||||||
ictx = clues.Add(
|
// TODO: update this path
|
||||||
|
previousPath string
|
||||||
|
ictx = clues.Add(
|
||||||
ctx,
|
ctx,
|
||||||
"channel_id", cID)
|
"channel_id", cID)
|
||||||
// "previous_delta", pii.SafeURL{
|
// "previous_delta", pii.SafeURL{
|
||||||
@ -182,7 +184,7 @@ func populateCollections(
|
|||||||
// TODO: the handler should provide this implementation.
|
// TODO: the handler should provide this implementation.
|
||||||
items, err := collectItems(
|
items, err := collectItems(
|
||||||
ctx,
|
ctx,
|
||||||
bh.NewMessagePager(qp.ProtectedResource.ID(), ptr.Val(c.GetId())))
|
bh.NewMessagePager(qp.ProtectedResource.ID(), ptr.Val(c.GetId()), previousPath))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
el.AddRecoverable(ctx, clues.Stack(err))
|
el.AddRecoverable(ctx, clues.Stack(err))
|
||||||
continue
|
continue
|
||||||
|
|||||||
@ -33,7 +33,7 @@ func (gHandler groupBackupHandler) GetChannelByID(
|
|||||||
|
|
||||||
func (gHandler groupBackupHandler) NewChannelsPager(
|
func (gHandler groupBackupHandler) NewChannelsPager(
|
||||||
teamID string,
|
teamID string,
|
||||||
) api.ChannelDeltaEnumerator {
|
) api.Pager[models.Channelable] {
|
||||||
return gHandler.ac.NewChannelPager(teamID)
|
return gHandler.ac.NewChannelPager(teamID)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -46,9 +46,9 @@ func (gHandler groupBackupHandler) GetMessageByID(
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (gHandler groupBackupHandler) NewMessagePager(
|
func (gHandler groupBackupHandler) NewMessagePager(
|
||||||
teamID, channelID string,
|
teamID, channelID, prevDelta string,
|
||||||
) api.ChannelMessageDeltaEnumerator {
|
) api.DeltaPager[models.ChatMessageable] {
|
||||||
return gHandler.ac.NewMessagePager(teamID, channelID)
|
return gHandler.ac.NewChannelMessageDeltaPager(teamID, channelID, prevDelta)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (gHandler groupBackupHandler) GetMessageReplies(
|
func (gHandler groupBackupHandler) GetMessageReplies(
|
||||||
|
|||||||
@ -23,7 +23,7 @@ type BackupHandler interface {
|
|||||||
teamID, channelID, itemID string,
|
teamID, channelID, itemID string,
|
||||||
) (models.ChatMessageable, error)
|
) (models.ChatMessageable, error)
|
||||||
NewMessagePager(
|
NewMessagePager(
|
||||||
teamID, channelID string,
|
teamID, channelID, prevDelta string,
|
||||||
) api.DeltaPager[models.ChatMessageable]
|
) api.DeltaPager[models.ChatMessageable]
|
||||||
|
|
||||||
GetMessageReplies(
|
GetMessageReplies(
|
||||||
|
|||||||
@ -51,13 +51,6 @@ func (p *channelMessageDeltaPageCtrl) ValuesIn(l PageLinker) ([]models.ChatMessa
|
|||||||
return getValues[models.ChatMessageable](l)
|
return getValues[models.ChatMessageable](l)
|
||||||
}
|
}
|
||||||
|
|
||||||
type ChannelDeltaEnumerator interface {
|
|
||||||
PageLinker
|
|
||||||
ValuesInPageLinker[models.Channelable]
|
|
||||||
SetNextLinker
|
|
||||||
GetPage(ctx context.Context) (PageLinker, error)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c Channels) NewChannelMessageDeltaPager(
|
func (c Channels) NewChannelMessageDeltaPager(
|
||||||
teamID, channelID, prevDelta string,
|
teamID, channelID, prevDelta string,
|
||||||
) *channelMessageDeltaPageCtrl {
|
) *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
|
// non delta channel message pager
|
||||||
// ---------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user