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)
NewChannelsPager(
teamID string,
) api.ChannelDeltaEnumerator
) api.ChannelEnumerator
GetMessageByID(
ctx context.Context,

View File

@ -21,28 +21,21 @@ type ChannelMessageDeltaEnumerator interface {
SetNextLinker
}
var _ ChannelMessageDeltaEnumerator = &MessagePageCtrl{}
var _ ChannelMessageDeltaEnumerator = &ChannelMessageDeltaPageCtrl{}
type MessagePageCtrl struct {
type ChannelMessageDeltaPageCtrl struct {
gs graph.Servicer
builder *teams.ItemChannelsItemMessagesDeltaRequestBuilder
options *teams.ItemChannelsItemMessagesDeltaRequestBuilderGetRequestConfiguration
}
func (c Channels) NewMessagePager(
teamID,
channelID string,
teamID, channelID string,
fields []string,
) *MessagePageCtrl {
requestConfig := &teams.ItemChannelsItemMessagesDeltaRequestBuilderGetRequestConfiguration{
QueryParameters: &teams.ItemChannelsItemMessagesDeltaRequestBuilderGetQueryParameters{
Select: fields,
},
}
res := &MessagePageCtrl{
) *ChannelMessageDeltaPageCtrl {
res := &ChannelMessageDeltaPageCtrl{
gs: c.Stable,
options: requestConfig,
options: nil,
builder: c.Stable.
Client().
Teams().
@ -56,11 +49,11 @@ func (c Channels) NewMessagePager(
return res
}
func (p *MessagePageCtrl) SetNext(nextLink string) {
func (p *ChannelMessageDeltaPageCtrl) SetNext(nextLink string) {
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 (
resp DeltaPageLinker
err error
@ -74,90 +67,19 @@ func (p *MessagePageCtrl) GetPage(ctx context.Context) (DeltaPageLinker, error)
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)
}
// ---------------------------------------------------------------------------
// channel 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
// non delta channel message pager
// ---------------------------------------------------------------------------
type MessageItemIDType struct {
ItemID string
}
type channelItemPageCtrl struct {
type channelMessagePageCtrl struct {
gs graph.Servicer
builder *teams.ItemChannelsItemMessagesRequestBuilder
options *teams.ItemChannelsItemMessagesRequestBuilderGetRequestConfiguration
@ -206,11 +128,10 @@ func (c Channels) NewChannelItemPager(
ByChannelId(containerID).
Messages()
return &channelItemPageCtrl{c.Stable, builder, options}
return &channelMessagePageCtrl{c.Stable, builder, options}
}
//lint:ignore U1000 False Positive
func (p *channelItemPageCtrl) getPage(ctx context.Context) (PageLinkValuer[models.ChatMessageable], error) {
func (p *channelMessagePageCtrl) getPage(ctx context.Context) (PageLinkValuer[models.ChatMessageable], error) {
page, err := p.builder.Get(ctx, p.options)
if err != nil {
return nil, graph.Stack(ctx, err)
@ -220,6 +141,70 @@ func (p *channelItemPageCtrl) getPage(ctx context.Context) (PageLinkValuer[model
}
//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())
}
// ---------------------------------------------------------------------------
// 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
}