remove fields restriction from query

This commit is contained in:
neha-Gupta1 2023-08-31 12:04:20 +05:30
parent 89edc583a3
commit 202c796896
2 changed files with 79 additions and 94 deletions

View File

@ -16,7 +16,7 @@ type BackupHandler interface {
) (models.Channelable, error) ) (models.Channelable, error)
NewChannelsPager( NewChannelsPager(
teamID string, teamID string,
) api.ChannelDeltaEnumerator ) api.ChannelEnumerator
GetMessageByID( GetMessageByID(
ctx context.Context, ctx context.Context,

View File

@ -21,28 +21,21 @@ type ChannelMessageDeltaEnumerator interface {
SetNextLinker SetNextLinker
} }
var _ ChannelMessageDeltaEnumerator = &MessagePageCtrl{} var _ ChannelMessageDeltaEnumerator = &ChannelMessageDeltaPageCtrl{}
type MessagePageCtrl struct { type ChannelMessageDeltaPageCtrl struct {
gs graph.Servicer gs graph.Servicer
builder *teams.ItemChannelsItemMessagesDeltaRequestBuilder builder *teams.ItemChannelsItemMessagesDeltaRequestBuilder
options *teams.ItemChannelsItemMessagesDeltaRequestBuilderGetRequestConfiguration options *teams.ItemChannelsItemMessagesDeltaRequestBuilderGetRequestConfiguration
} }
func (c Channels) NewMessagePager( func (c Channels) NewMessagePager(
teamID, teamID, channelID string,
channelID string,
fields []string, fields []string,
) *MessagePageCtrl { ) *ChannelMessageDeltaPageCtrl {
requestConfig := &teams.ItemChannelsItemMessagesDeltaRequestBuilderGetRequestConfiguration{ res := &ChannelMessageDeltaPageCtrl{
QueryParameters: &teams.ItemChannelsItemMessagesDeltaRequestBuilderGetQueryParameters{
Select: fields,
},
}
res := &MessagePageCtrl{
gs: c.Stable, gs: c.Stable,
options: requestConfig, options: nil,
builder: c.Stable. builder: c.Stable.
Client(). Client().
Teams(). Teams().
@ -56,11 +49,11 @@ func (c Channels) NewMessagePager(
return res return res
} }
func (p *MessagePageCtrl) SetNext(nextLink string) { func (p *ChannelMessageDeltaPageCtrl) SetNext(nextLink string) {
p.builder = teams.NewItemChannelsItemMessagesDeltaRequestBuilder(nextLink, p.gs.Adapter()) p.builder = teams.NewItemChannelsItemMessagesDeltaRequestBuilder(nextLink, p.gs.Adapter())
} }
func (p *MessagePageCtrl) GetPage(ctx context.Context) (DeltaPageLinker, error) { func (p *ChannelMessageDeltaPageCtrl) GetPage(ctx context.Context) (DeltaPageLinker, error) {
var ( var (
resp DeltaPageLinker resp DeltaPageLinker
err error err error
@ -74,90 +67,19 @@ func (p *MessagePageCtrl) GetPage(ctx context.Context) (DeltaPageLinker, error)
return resp, nil return resp, nil
} }
func (p *MessagePageCtrl) ValuesIn(l PageLinker) ([]models.ChatMessageable, error) { func (p *ChannelMessageDeltaPageCtrl) ValuesIn(l PageLinker) ([]models.ChatMessageable, error) {
return getValues[models.ChatMessageable](l) return getValues[models.ChatMessageable](l)
} }
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
// channel pager // non delta channel message pager
// ---------------------------------------------------------------------------
type ChannelDeltaEnumerator interface {
PageLinker
ValuesInPageLinker[models.Channelable]
SetNextLinker
}
// TODO: implement
var _ ChannelDeltaEnumerator = &channelPageCtrl{}
type channelPageCtrl struct {
gs graph.Servicer
builder *teams.ItemChannelsRequestBuilder
options *teams.ItemChannelsRequestBuilderGetRequestConfiguration
}
func (c Channels) NewChannelPager(
teamID,
channelID string,
fields []string,
) *channelPageCtrl {
requestConfig := &teams.ItemChannelsRequestBuilderGetRequestConfiguration{
QueryParameters: &teams.ItemChannelsRequestBuilderGetQueryParameters{
Select: fields,
},
}
res := &channelPageCtrl{
gs: c.Stable,
options: requestConfig,
builder: c.Stable.
Client().
Teams().
ByTeamId(teamID).
Channels(),
}
return res
}
func (p *channelPageCtrl) SetNext(nextLink string) {
p.builder = teams.NewItemChannelsRequestBuilder(nextLink, p.gs.Adapter())
}
func (p *channelPageCtrl) GetPage(ctx context.Context) (PageLinker, error) {
var (
resp PageLinker
err error
)
resp, err = p.builder.Get(ctx, p.options)
if err != nil {
return nil, graph.Stack(ctx, err)
}
return resp, nil
}
func (p *channelPageCtrl) ValuesIn(l PageLinker) ([]models.Channelable, error) {
return getValues[models.Channelable](l)
}
func (p *channelPageCtrl) GetOdataNextLink() *string {
// No next link preent in the API result
emptyString := ""
return &emptyString
}
// ---------------------------------------------------------------------------
// non delta item pager
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
type MessageItemIDType struct { type MessageItemIDType struct {
ItemID string ItemID string
} }
type channelItemPageCtrl struct { type channelMessagePageCtrl struct {
gs graph.Servicer gs graph.Servicer
builder *teams.ItemChannelsItemMessagesRequestBuilder builder *teams.ItemChannelsItemMessagesRequestBuilder
options *teams.ItemChannelsItemMessagesRequestBuilderGetRequestConfiguration options *teams.ItemChannelsItemMessagesRequestBuilderGetRequestConfiguration
@ -206,11 +128,10 @@ func (c Channels) NewChannelItemPager(
ByChannelId(containerID). ByChannelId(containerID).
Messages() Messages()
return &channelItemPageCtrl{c.Stable, builder, options} return &channelMessagePageCtrl{c.Stable, builder, options}
} }
//lint:ignore U1000 False Positive func (p *channelMessagePageCtrl) getPage(ctx context.Context) (PageLinkValuer[models.ChatMessageable], error) {
func (p *channelItemPageCtrl) getPage(ctx context.Context) (PageLinkValuer[models.ChatMessageable], error) {
page, err := p.builder.Get(ctx, p.options) page, err := p.builder.Get(ctx, p.options)
if err != nil { if err != nil {
return nil, graph.Stack(ctx, err) return nil, graph.Stack(ctx, err)
@ -220,6 +141,70 @@ func (p *channelItemPageCtrl) getPage(ctx context.Context) (PageLinkValuer[model
} }
//lint:ignore U1000 False Positive //lint:ignore U1000 False Positive
func (p *channelItemPageCtrl) setNext(nextLink string) { func (p *channelMessagePageCtrl) setNext(nextLink string) {
p.builder = teams.NewItemChannelsItemMessagesRequestBuilder(nextLink, p.gs.Adapter()) p.builder = teams.NewItemChannelsItemMessagesRequestBuilder(nextLink, p.gs.Adapter())
} }
// ---------------------------------------------------------------------------
// channel pager
// ---------------------------------------------------------------------------
type ChannelEnumerator interface {
PageLinker
ValuesInPageLinker[models.Channelable]
SetNextLinker
}
var _ ChannelEnumerator = &channelPageCtrl{}
type channelPageCtrl struct {
gs graph.Servicer
builder *teams.ItemChannelsRequestBuilder
options *teams.ItemChannelsRequestBuilderGetRequestConfiguration
}
func (c Channels) NewChannelPager(
teamID,
channelID string,
fields []string,
) *channelPageCtrl {
res := &channelPageCtrl{
gs: c.Stable,
options: nil,
builder: c.Stable.
Client().
Teams().
ByTeamId(teamID).
Channels(),
}
return res
}
func (p *channelPageCtrl) SetNext(nextLink string) {
p.builder = teams.NewItemChannelsRequestBuilder(nextLink, p.gs.Adapter())
}
func (p *channelPageCtrl) GetPage(ctx context.Context) (PageLinker, error) {
var (
resp PageLinker
err error
)
resp, err = p.builder.Get(ctx, p.options)
if err != nil {
return nil, graph.Stack(ctx, err)
}
return resp, nil
}
func (p *channelPageCtrl) ValuesIn(l PageLinker) ([]models.Channelable, error) {
return getValues[models.Channelable](l)
}
func (p *channelPageCtrl) GetOdataNextLink() *string {
// No next link preent in the API result
emptyString := ""
return &emptyString
}