Compare commits
36 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
4f406b2ce6 | ||
![]() |
e564c555d7 | ||
![]() |
f7ec9af9e8 | ||
![]() |
4d93a774ce | ||
![]() |
2595dd30bf | ||
![]() |
9190365289 | ||
![]() |
57794b3b9f | ||
![]() |
3c36f651be | ||
![]() |
8e6ddadba2 | ||
![]() |
8a87a71927 | ||
![]() |
0047e6f523 | ||
![]() |
7183095a28 | ||
![]() |
13c90893c7 | ||
![]() |
976fbcd07f | ||
![]() |
d97b077e85 | ||
![]() |
8950575bfb | ||
![]() |
11fc4c286f | ||
![]() |
8d08e348a9 | ||
![]() |
a18807f19e | ||
![]() |
29f658fd3c | ||
![]() |
a30bb8fed0 | ||
![]() |
092ca1cd67 | ||
![]() |
0df2539641 | ||
![]() |
0f2d8a599c | ||
![]() |
54b3143a1d | ||
![]() |
148f7d2a91 | ||
![]() |
1aa662f763 | ||
![]() |
0b86b88de7 | ||
![]() |
98033b1ba7 | ||
![]() |
2b7eab629d | ||
![]() |
0e4973e15c | ||
![]() |
af0acf0dae | ||
![]() |
76e5fe5a87 | ||
![]() |
802c80f40c | ||
![]() |
a51c5bd905 | ||
![]() |
8c68556f52 |
@@ -23,7 +23,7 @@ run:
|
||||
# default value is empty list, but next dirs are always skipped independently
|
||||
# from this option's value:
|
||||
# vendor$, third_party$, testdata$, examples$, Godeps$, builtin$
|
||||
skip-dirs:
|
||||
skip-dirs: gateway/bridgemap$
|
||||
|
||||
# which files to skip: they will be analyzed, but issues from them
|
||||
# won't be reported. Default value is empty list, but there is
|
||||
|
14
Dockerfile
14
Dockerfile
@@ -1,11 +1,13 @@
|
||||
FROM alpine:edge
|
||||
ENTRYPOINT ["/bin/matterbridge"]
|
||||
FROM alpine:edge AS builder
|
||||
|
||||
COPY . /go/src/github.com/42wim/matterbridge
|
||||
RUN apk update && apk add go git gcc musl-dev ca-certificates mailcap \
|
||||
RUN apk update && apk add go git gcc musl-dev \
|
||||
&& cd /go/src/github.com/42wim/matterbridge \
|
||||
&& export GOPATH=/go \
|
||||
&& go get \
|
||||
&& go build -x -ldflags "-X main.githash=$(git log --pretty=format:'%h' -n 1)" -o /bin/matterbridge \
|
||||
&& rm -rf /go \
|
||||
&& apk del --purge git go gcc musl-dev
|
||||
&& go build -x -ldflags "-X main.githash=$(git log --pretty=format:'%h' -n 1)" -o /bin/matterbridge
|
||||
|
||||
FROM alpine:edge
|
||||
RUN apk --no-cache add ca-certificates mailcap
|
||||
COPY --from=builder /bin/matterbridge /bin/matterbridge
|
||||
ENTRYPOINT ["/bin/matterbridge"]
|
||||
|
80
README.md
80
README.md
@@ -9,19 +9,20 @@ Letting people be where they want to be.<br />
|
||||
|
||||
<sup>
|
||||
|
||||
[Discord][mb-discord] |
|
||||
[Gitter][mb-gitter] |
|
||||
[IRC][mb-irc] |
|
||||
[Discord][mb-discord] |
|
||||
[Keybase][mb-keybase] |
|
||||
[Matrix][mb-matrix] |
|
||||
[Slack][mb-slack] |
|
||||
[Mattermost][mb-mattermost] |
|
||||
[MSTeams][mb-msteams] |
|
||||
[Rocket.Chat][mb-rocketchat] |
|
||||
[XMPP][mb-xmpp] |
|
||||
[Slack][mb-slack] |
|
||||
[Telegram][mb-telegram] |
|
||||
[Twitch][mb-twitch] |
|
||||
[WhatsApp][mb-whatsapp] |
|
||||
[XMPP][mb-xmpp] |
|
||||
[Zulip][mb-zulip] |
|
||||
[Telegram][mb-telegram] |
|
||||
[Keybase][mb-keybase] |
|
||||
And more...
|
||||
</sup>
|
||||
|
||||
@@ -86,28 +87,29 @@ And more...
|
||||
|
||||
### Natively supported
|
||||
|
||||
- [Mattermost](https://github.com/mattermost/mattermost-server/) 4.x, 5.x
|
||||
- [IRC](http://www.mirc.com/servers.html)
|
||||
- [XMPP](https://xmpp.org)
|
||||
- [Gitter](https://gitter.im)
|
||||
- [Slack](https://slack.com)
|
||||
- [Discord](https://discordapp.com)
|
||||
- [Telegram](https://telegram.org)
|
||||
- [Rocket.chat](https://rocket.chat)
|
||||
- [Matrix](https://matrix.org)
|
||||
- [Steam](https://store.steampowered.com/)
|
||||
- [Twitch](https://twitch.tv)
|
||||
- [Ssh-chat](https://github.com/shazow/ssh-chat)
|
||||
- [WhatsApp](https://www.whatsapp.com/)
|
||||
- [Zulip](https://zulipchat.com)
|
||||
- [Gitter](https://gitter.im)
|
||||
- [IRC](http://www.mirc.com/servers.html)
|
||||
- [Keybase](https://keybase.io)
|
||||
- [Matrix](https://matrix.org)
|
||||
- [Mattermost](https://github.com/mattermost/mattermost-server/) 4.x, 5.x
|
||||
- [Microsoft Teams](https://teams.microsoft.com)
|
||||
- [Rocket.chat](https://rocket.chat)
|
||||
- [Slack](https://slack.com)
|
||||
- [Ssh-chat](https://github.com/shazow/ssh-chat)
|
||||
- [Steam](https://store.steampowered.com/)
|
||||
- [Telegram](https://telegram.org)
|
||||
- [Twitch](https://twitch.tv)
|
||||
- [WhatsApp](https://www.whatsapp.com/)
|
||||
- [XMPP](https://xmpp.org)
|
||||
- [Zulip](https://zulipchat.com)
|
||||
|
||||
### 3rd party via matterbridge api
|
||||
|
||||
- [Discourse](https://github.com/DeclanHoare/matterbabble)
|
||||
- [Facebook messenger](https://github.com/VictorNine/fbridge)
|
||||
- [Minecraft](https://github.com/elytra/MatterLink)
|
||||
- [Reddit](https://github.com/bonehurtingjuice/mattereddit)
|
||||
- [Facebook messenger](https://github.com/VictorNine/fbridge)
|
||||
- [Discourse](https://github.com/DeclanHoare/matterbabble)
|
||||
- [Counter-Strike, half-life and more](https://forums.alliedmods.net/showthread.php?t=319430)
|
||||
|
||||
### API
|
||||
@@ -128,18 +130,18 @@ Used by the projects below. Feel free to make a PR to add your project to this l
|
||||
|
||||
Questions or want to test on your favorite platform? Join below:
|
||||
|
||||
- [Discord][mb-discord]
|
||||
- [Gitter][mb-gitter]
|
||||
- [IRC][mb-irc]
|
||||
- [Discord][mb-discord]
|
||||
- [Keybase][mb-keybase]
|
||||
- [Matrix][mb-matrix]
|
||||
- [Slack][mb-slack]
|
||||
- [Mattermost][mb-mattermost]
|
||||
- [Rocket.Chat][mb-rocketchat]
|
||||
- [XMPP][mb-xmpp] (matterbridge@conference.jabber.de)
|
||||
- [Twitch][mb-twitch]
|
||||
- [Zulip][mb-zulip]
|
||||
- [Slack][mb-slack]
|
||||
- [Telegram][mb-telegram]
|
||||
- [Keybase][mb-keybase]
|
||||
- [Twitch][mb-twitch]
|
||||
- [XMPP][mb-xmpp] (matterbridge@conference.jabber.de)
|
||||
- [Zulip][mb-zulip]
|
||||
|
||||
## Screenshots
|
||||
|
||||
@@ -149,7 +151,7 @@ See https://github.com/42wim/matterbridge/wiki
|
||||
|
||||
### Binaries
|
||||
|
||||
- Latest stable release [v1.17.0](https://github.com/42wim/matterbridge/releases/latest)
|
||||
- Latest stable release [v1.17.3](https://github.com/42wim/matterbridge/releases/latest)
|
||||
- Development releases (follows master) can be downloaded [here](https://dl.bintray.com/42wim/nightly/)
|
||||
|
||||
To install or upgrade just download the latest [binary](https://github.com/42wim/matterbridge/releases/latest) and follow the instructions on the [howto](https://github.com/42wim/matterbridge/wiki/How-to-create-your-config) for a step by step walkthrough for creating your configuration.
|
||||
@@ -322,30 +324,32 @@ Matterbridge wouldn't exist without these libraries:
|
||||
- gops - https://github.com/google/gops
|
||||
- gozulipbot - https://github.com/ifo/gozulipbot
|
||||
- irc - https://github.com/lrstanley/girc
|
||||
- mattermost - https://github.com/mattermost/mattermost-server
|
||||
- keybase - https://github.com/keybase/go-keybase-chat-bot
|
||||
- matrix - https://github.com/matrix-org/gomatrix
|
||||
- sshchat - https://github.com/shazow/ssh-chat
|
||||
- mattermost - https://github.com/mattermost/mattermost-server
|
||||
- msgraph.go - https://github.com/yaegashi/msgraph.go
|
||||
- slack - https://github.com/nlopes/slack
|
||||
- sshchat - https://github.com/shazow/ssh-chat
|
||||
- steam - https://github.com/Philipp15b/go-steam
|
||||
- telegram - https://github.com/go-telegram-bot-api/telegram-bot-api
|
||||
- xmpp - https://github.com/mattn/go-xmpp
|
||||
- whatsapp - https://github.com/Rhymen/go-whatsapp/
|
||||
- zulip - https://github.com/ifo/gozulipbot
|
||||
- tengo - https://github.com/d5/tengo
|
||||
- keybase - https://github.com/keybase/go-keybase-chat-bot
|
||||
- whatsapp - https://github.com/Rhymen/go-whatsapp/
|
||||
- xmpp - https://github.com/mattn/go-xmpp
|
||||
- zulip - https://github.com/ifo/gozulipbot
|
||||
|
||||
<!-- Links -->
|
||||
|
||||
[mb-discord]: https://discord.gg/AkKPtrQ
|
||||
[mb-gitter]: https://gitter.im/42wim/matterbridge
|
||||
[mb-irc]: https://webchat.freenode.net/?channels=matterbridgechat
|
||||
[mb-discord]: https://discord.gg/AkKPtrQ
|
||||
[mb-keybase]: https://keybase.io/team/matterbridge
|
||||
[mb-matrix]: https://riot.im/app/#/room/#matterbridge:matrix.org
|
||||
[mb-slack]: https://join.slack.com/matterbridgechat/shared_invite/MjEwODMxNjU1NDMwLTE0OTk2MTU3NTMtMzZkZmRiNDZhOA
|
||||
[mb-mattermost]: https://framateam.org/signup_user_complete/?id=tfqm33ggop8x3qgu4boeieta6e
|
||||
[mb-msteams]: https://teams.microsoft.com/join/hj92x75gd3y7
|
||||
[mb-rocketchat]: https://open.rocket.chat/channel/matterbridge
|
||||
[mb-xmpp]: https://inverse.chat/
|
||||
[mb-slack]: https://join.slack.com/matterbridgechat/shared_invite/MjEwODMxNjU1NDMwLTE0OTk2MTU3NTMtMzZkZmRiNDZhOA
|
||||
[mb-telegram]: https://t.me/Matterbridge
|
||||
[mb-twitch]: https://www.twitch.tv/matterbridge
|
||||
[mb-whatsapp]: https://www.whatsapp.com/
|
||||
[mb-keybase]: https://keybase.io/team/matterbridge
|
||||
[mb-xmpp]: https://inverse.chat/
|
||||
[mb-zulip]: https://matterbridge.zulipchat.com/register/
|
||||
[mb-telegram]: https://t.me/Matterbridge
|
||||
|
@@ -4,6 +4,7 @@ import (
|
||||
"log"
|
||||
"strings"
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
"github.com/42wim/matterbridge/bridge/config"
|
||||
"github.com/sirupsen/logrus"
|
||||
@@ -74,6 +75,7 @@ func (b *Bridge) joinChannels(channels map[string]config.ChannelInfo, exists map
|
||||
for ID, channel := range channels {
|
||||
if !exists[ID] {
|
||||
b.Log.Infof("%s: joining %s (ID: %s)", b.Account, channel.Name, ID)
|
||||
time.Sleep(time.Duration(b.GetInt("JoinDelay")) * time.Millisecond)
|
||||
err := b.JoinChannel(channel)
|
||||
if err != nil {
|
||||
return err
|
||||
|
@@ -89,6 +89,7 @@ type Protocol struct {
|
||||
IgnoreNicks string // all protocols
|
||||
IgnoreMessages string // all protocols
|
||||
Jid string // xmpp
|
||||
JoinDelay string // all protocols
|
||||
Label string // all protocols
|
||||
Login string // mattermost, matrix
|
||||
MediaDownloadBlackList []string
|
||||
|
@@ -21,6 +21,7 @@ type Bdiscord struct {
|
||||
c *discordgo.Session
|
||||
|
||||
nick string
|
||||
userID string
|
||||
guildID string
|
||||
webhookID string
|
||||
webhookToken string
|
||||
@@ -92,6 +93,7 @@ func (b *Bdiscord) Connect() error {
|
||||
}
|
||||
serverName := strings.Replace(b.GetString("Server"), "ID:", "", -1)
|
||||
b.nick = userinfo.Username
|
||||
b.userID = userinfo.ID
|
||||
b.channelsMutex.Lock()
|
||||
for _, guild := range guilds {
|
||||
if guild.Name == serverName || guild.ID == serverName {
|
||||
|
@@ -36,6 +36,11 @@ func (b *Bdiscord) messageTyping(s *discordgo.Session, m *discordgo.TypingStart)
|
||||
return
|
||||
}
|
||||
|
||||
// Ignore our own typing messages
|
||||
if m.UserID == b.userID {
|
||||
return
|
||||
}
|
||||
|
||||
rmsg := config.Message{Account: b.Account, Event: config.EventUserTyping}
|
||||
rmsg.Channel = b.getChannelName(m.ChannelID)
|
||||
b.Remote <- rmsg
|
||||
@@ -119,6 +124,9 @@ func (b *Bdiscord) messageCreate(s *discordgo.Session, m *discordgo.MessageCreat
|
||||
rmsg.Event = config.EventUserAction
|
||||
}
|
||||
|
||||
// Replace emotes
|
||||
rmsg.Text = replaceEmotes(rmsg.Text)
|
||||
|
||||
b.Log.Debugf("<= Sending message from %s on %s to gateway", m.Author.Username, b.Account)
|
||||
b.Log.Debugf("<= Message is %#v", rmsg)
|
||||
b.Remote <- rmsg
|
||||
|
@@ -137,6 +137,7 @@ var (
|
||||
// See https://discordapp.com/developers/docs/reference#message-formatting.
|
||||
channelMentionRE = regexp.MustCompile("<#[0-9]+>")
|
||||
userMentionRE = regexp.MustCompile("@[^@\n]{1,32}")
|
||||
emoteRE = regexp.MustCompile(`<a?(:\w+:)\d+>`)
|
||||
)
|
||||
|
||||
func (b *Bdiscord) replaceChannelMentions(text string) string {
|
||||
@@ -182,6 +183,10 @@ func (b *Bdiscord) replaceUserMentions(text string) string {
|
||||
return userMentionRE.ReplaceAllStringFunc(text, replaceUserMentionFunc)
|
||||
}
|
||||
|
||||
func replaceEmotes(text string) string {
|
||||
return emoteRE.ReplaceAllString(text, "$1")
|
||||
}
|
||||
|
||||
func (b *Bdiscord) replaceAction(text string) (string, bool) {
|
||||
if strings.HasPrefix(text, "_") && strings.HasSuffix(text, "_") {
|
||||
return text[1 : len(text)-1], true
|
||||
|
@@ -54,12 +54,12 @@ func (b *Birc) handleFiles(msg *config.Message) bool {
|
||||
for _, f := range msg.Extra["file"] {
|
||||
fi := f.(config.FileInfo)
|
||||
if fi.Comment != "" {
|
||||
msg.Text += fi.Comment + ": "
|
||||
msg.Text += fi.Comment + " : "
|
||||
}
|
||||
if fi.URL != "" {
|
||||
msg.Text = fi.URL
|
||||
if fi.Comment != "" {
|
||||
msg.Text = fi.Comment + ": " + fi.URL
|
||||
msg.Text = fi.Comment + " : " + fi.URL
|
||||
}
|
||||
}
|
||||
b.Local <- config.Message{Text: msg.Text, Username: msg.Username, Channel: msg.Channel, Event: msg.Event}
|
||||
|
@@ -9,7 +9,7 @@ import (
|
||||
"github.com/42wim/matterbridge/bridge/config"
|
||||
"github.com/42wim/matterbridge/bridge/helper"
|
||||
|
||||
msgraph "github.com/matterbridge/msgraph.go/beta"
|
||||
msgraph "github.com/yaegashi/msgraph.go/beta"
|
||||
)
|
||||
|
||||
func (b *Bmsteams) findFile(weburl string) (string, error) {
|
||||
|
@@ -11,10 +11,9 @@ import (
|
||||
"github.com/42wim/matterbridge/bridge"
|
||||
"github.com/42wim/matterbridge/bridge/config"
|
||||
|
||||
// "github.com/davecgh/go-spew/spew"
|
||||
msgraph "github.com/matterbridge/msgraph.go/beta"
|
||||
"github.com/matterbridge/msgraph.go/msauth"
|
||||
"github.com/mattn/godown"
|
||||
msgraph "github.com/yaegashi/msgraph.go/beta"
|
||||
"github.com/yaegashi/msgraph.go/msauth"
|
||||
|
||||
"golang.org/x/oauth2"
|
||||
)
|
||||
|
@@ -2,6 +2,7 @@ package brocketchat
|
||||
|
||||
import (
|
||||
"github.com/42wim/matterbridge/bridge/config"
|
||||
"github.com/matterbridge/Rocket.Chat.Go.SDK/models"
|
||||
)
|
||||
|
||||
func (b *Brocketchat) handleRocket() {
|
||||
@@ -38,6 +39,23 @@ func (b *Brocketchat) handleRocketHook(messages chan *config.Message) {
|
||||
}
|
||||
}
|
||||
|
||||
func (b *Brocketchat) handleStatusEvent(ev models.Message, rmsg *config.Message) bool {
|
||||
switch ev.Type {
|
||||
case "":
|
||||
// this is a normal message, no processing needed
|
||||
// return true so the message is not dropped
|
||||
return true
|
||||
case sUserJoined, sUserLeft:
|
||||
rmsg.Event = config.EventJoinLeave
|
||||
return true
|
||||
case sRoomChangedTopic:
|
||||
rmsg.Event = config.EventTopicChange
|
||||
return true
|
||||
}
|
||||
b.Log.Debugf("Dropping message with unknown type: %s", ev.Type)
|
||||
return false
|
||||
}
|
||||
|
||||
func (b *Brocketchat) handleRocketClient(messages chan *config.Message) {
|
||||
for message := range b.messageChan {
|
||||
// skip messages with same ID, apparently messages get duplicated for an unknown reason
|
||||
@@ -59,7 +77,12 @@ func (b *Brocketchat) handleRocketClient(messages chan *config.Message) {
|
||||
UserID: message.User.ID,
|
||||
ID: message.ID,
|
||||
}
|
||||
messages <- rmsg
|
||||
|
||||
// handleStatusEvent returns false if the message should be dropped
|
||||
// in that case it is probably some modification to the channel we do not want to relay
|
||||
if b.handleStatusEvent(m, rmsg) {
|
||||
messages <- rmsg
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -29,6 +29,12 @@ type Brocketchat struct {
|
||||
sync.RWMutex
|
||||
}
|
||||
|
||||
const (
|
||||
sUserJoined = "uj"
|
||||
sUserLeft = "ul"
|
||||
sRoomChangedTopic = "room_changed_topic"
|
||||
)
|
||||
|
||||
func New(cfg *bridge.Config) bridge.Bridger {
|
||||
newCache, err := lru.New(100)
|
||||
if err != nil {
|
||||
|
@@ -1,6 +1,7 @@
|
||||
package bslack
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"html"
|
||||
"time"
|
||||
@@ -10,6 +11,9 @@ import (
|
||||
"github.com/slack-go/slack"
|
||||
)
|
||||
|
||||
// ErrEventIgnored is for events that should be ignored
|
||||
var ErrEventIgnored = errors.New("this event message should ignored")
|
||||
|
||||
func (b *Bslack) handleSlack() {
|
||||
messages := make(chan *config.Message)
|
||||
if b.GetString(incomingWebhookConfig) != "" {
|
||||
@@ -53,7 +57,9 @@ func (b *Bslack) handleSlackClient(messages chan *config.Message) {
|
||||
continue
|
||||
}
|
||||
rmsg, err := b.handleTypingEvent(ev)
|
||||
if err != nil {
|
||||
if err == ErrEventIgnored {
|
||||
continue
|
||||
} else if err != nil {
|
||||
b.Log.Errorf("%#v", err)
|
||||
continue
|
||||
}
|
||||
@@ -131,12 +137,6 @@ func (b *Bslack) skipMessageEvent(ev *slack.MessageEvent) bool {
|
||||
hasOurCallbackID = ok && block.BlockID == "matterbridge_"+b.uuid
|
||||
}
|
||||
|
||||
// Skip any messages that we made ourselves or from 'slackbot' (see #527).
|
||||
if ev.Username == sSlackBotUser ||
|
||||
(b.rtm != nil && ev.Username == b.si.User.Name) || hasOurCallbackID {
|
||||
return true
|
||||
}
|
||||
|
||||
if ev.SubMessage != nil {
|
||||
// It seems ev.SubMessage.Edited == nil when slack unfurls.
|
||||
// Do not forward these messages. See Github issue #266.
|
||||
@@ -149,6 +149,16 @@ func (b *Bslack) skipMessageEvent(ev *slack.MessageEvent) bool {
|
||||
if ev.SubType == "message_replied" && ev.Hidden {
|
||||
return true
|
||||
}
|
||||
if len(ev.SubMessage.Blocks.BlockSet) == 1 {
|
||||
block, ok := ev.SubMessage.Blocks.BlockSet[0].(*slack.SectionBlock)
|
||||
hasOurCallbackID = ok && block.BlockID == "matterbridge_"+b.uuid
|
||||
}
|
||||
}
|
||||
|
||||
// Skip any messages that we made ourselves or from 'slackbot' (see #527).
|
||||
if ev.Username == sSlackBotUser ||
|
||||
(b.rtm != nil && ev.Username == b.si.User.Name) || hasOurCallbackID {
|
||||
return true
|
||||
}
|
||||
|
||||
if len(ev.Files) > 0 {
|
||||
@@ -276,6 +286,9 @@ func (b *Bslack) handleAttachments(ev *slack.MessageEvent, rmsg *config.Message)
|
||||
}
|
||||
|
||||
func (b *Bslack) handleTypingEvent(ev *slack.UserTypingEvent) (*config.Message, error) {
|
||||
if ev.User == b.si.User.ID {
|
||||
return nil, ErrEventIgnored
|
||||
}
|
||||
channelInfo, err := b.channels.getChannelByID(ev.Channel)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
@@ -64,6 +64,7 @@ const (
|
||||
editSuffixConfig = "EditSuffix"
|
||||
iconURLConfig = "iconurl"
|
||||
noSendJoinConfig = "nosendjoinpart"
|
||||
messageLength = 3000
|
||||
)
|
||||
|
||||
func New(cfg *bridge.Config) bridge.Bridger {
|
||||
@@ -194,6 +195,7 @@ func (b *Bslack) Send(msg config.Message) (string, error) {
|
||||
b.Log.Debugf("=> Receiving %#v", msg)
|
||||
}
|
||||
|
||||
msg.Text = helper.ClipMessage(msg.Text, messageLength)
|
||||
msg.Text = b.replaceCodeFence(msg.Text)
|
||||
|
||||
// Make a action /me of the message
|
||||
|
@@ -23,7 +23,8 @@ Check:
|
||||
// HandleError received from WhatsApp
|
||||
func (b *Bwhatsapp) HandleError(err error) {
|
||||
// ignore received invalid data errors. https://github.com/42wim/matterbridge/issues/843
|
||||
if strings.Contains(err.Error(), "error processing data: received invalid data") {
|
||||
// ignore tag 174 errors. https://github.com/42wim/matterbridge/issues/1094
|
||||
if strings.Contains(err.Error(), "error processing data: received invalid data") || strings.Contains(err.Error(), "invalid string with tag 174") {
|
||||
return
|
||||
}
|
||||
|
||||
@@ -55,6 +56,7 @@ func (b *Bwhatsapp) reconnect(err error) {
|
||||
err := b.conn.Restore()
|
||||
if err == nil {
|
||||
bf.Reset()
|
||||
b.startedAt = uint64(time.Now().Unix())
|
||||
return
|
||||
}
|
||||
}
|
||||
|
@@ -67,6 +67,7 @@ func (b *Bwhatsapp) Connect() error {
|
||||
// https://github.com/Rhymen/go-whatsapp#creating-a-connection
|
||||
b.Log.Debugln("Connecting to WhatsApp..")
|
||||
conn, err := whatsapp.NewConn(20 * time.Second)
|
||||
conn.SetClientVersion(0, 4, 2080)
|
||||
if err != nil {
|
||||
return errors.New("failed to connect to WhatsApp: " + err.Error())
|
||||
}
|
||||
|
34
bridge/xmpp/handler.go
Normal file
34
bridge/xmpp/handler.go
Normal file
@@ -0,0 +1,34 @@
|
||||
package bxmpp
|
||||
|
||||
import (
|
||||
"github.com/42wim/matterbridge/bridge/config"
|
||||
"github.com/42wim/matterbridge/bridge/helper"
|
||||
"github.com/matterbridge/go-xmpp"
|
||||
)
|
||||
|
||||
// handleDownloadAvatar downloads the avatar of userid from channel
|
||||
// sends a EVENT_AVATAR_DOWNLOAD message to the gateway if successful.
|
||||
// logs an error message if it fails
|
||||
func (b *Bxmpp) handleDownloadAvatar(avatar xmpp.AvatarData) {
|
||||
rmsg := config.Message{
|
||||
Username: "system",
|
||||
Text: "avatar",
|
||||
Channel: b.parseChannel(avatar.From),
|
||||
Account: b.Account,
|
||||
UserID: avatar.From,
|
||||
Event: config.EventAvatarDownload,
|
||||
Extra: make(map[string][]interface{}),
|
||||
}
|
||||
if _, ok := b.avatarMap[avatar.From]; !ok {
|
||||
b.Log.Debugf("Avatar.From: %s", avatar.From)
|
||||
|
||||
err := helper.HandleDownloadSize(b.Log, &rmsg, avatar.From+".png", int64(len(avatar.Data)), b.General)
|
||||
if err != nil {
|
||||
b.Log.Error(err)
|
||||
return
|
||||
}
|
||||
helper.HandleDownloadData(b.Log, &rmsg, avatar.From+".png", rmsg.Text, "", &avatar.Data, b.General)
|
||||
b.Log.Debugf("Avatar download complete")
|
||||
b.Remote <- rmsg
|
||||
}
|
||||
}
|
30
bridge/xmpp/helpers.go
Normal file
30
bridge/xmpp/helpers.go
Normal file
@@ -0,0 +1,30 @@
|
||||
package bxmpp
|
||||
|
||||
import (
|
||||
"regexp"
|
||||
|
||||
"github.com/42wim/matterbridge/bridge/config"
|
||||
)
|
||||
|
||||
var pathRegex = regexp.MustCompile("[^a-zA-Z0-9]+")
|
||||
|
||||
// GetAvatar constructs a URL for a given user-avatar if it is available in the cache.
|
||||
func getAvatar(av map[string]string, userid string, general *config.Protocol) string {
|
||||
if hash, ok := av[userid]; ok {
|
||||
// NOTE: This does not happen in bridge/helper/helper.go but messes up XMPP
|
||||
id := pathRegex.ReplaceAllString(userid, "_")
|
||||
return general.MediaServerDownload + "/" + hash + "/" + id + ".png"
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (b *Bxmpp) cacheAvatar(msg *config.Message) string {
|
||||
fi := msg.Extra["file"][0].(config.FileInfo)
|
||||
/* if we have a sha we have successfully uploaded the file to the media server,
|
||||
so we can now cache the sha */
|
||||
if fi.SHA != "" {
|
||||
b.Log.Debugf("Added %s to %s in avatarMap", fi.SHA, msg.UserID)
|
||||
b.avatarMap[msg.UserID] = fi.SHA
|
||||
}
|
||||
return ""
|
||||
}
|
@@ -23,12 +23,15 @@ type Bxmpp struct {
|
||||
xmppMap map[string]string
|
||||
connected bool
|
||||
sync.RWMutex
|
||||
|
||||
avatarMap map[string]string
|
||||
}
|
||||
|
||||
func New(cfg *bridge.Config) bridge.Bridger {
|
||||
return &Bxmpp{
|
||||
Config: cfg,
|
||||
xmppMap: make(map[string]string),
|
||||
Config: cfg,
|
||||
xmppMap: make(map[string]string),
|
||||
avatarMap: make(map[string]string),
|
||||
}
|
||||
}
|
||||
|
||||
@@ -69,6 +72,10 @@ func (b *Bxmpp) Send(msg config.Message) (string, error) {
|
||||
}
|
||||
b.Log.Debugf("=> Receiving %#v", msg)
|
||||
|
||||
if msg.Event == config.EventAvatarDownload {
|
||||
return b.cacheAvatar(&msg), nil
|
||||
}
|
||||
|
||||
// Upload a file (in XMPP case send the upload URL because XMPP has no native upload support).
|
||||
if msg.Extra != nil {
|
||||
for _, rmsg := range helper.HandleExtra(&msg, b.General) {
|
||||
@@ -114,6 +121,9 @@ func (b *Bxmpp) createXMPP() error {
|
||||
ServerName: strings.Split(b.GetString("Jid"), "@")[1],
|
||||
InsecureSkipVerify: b.GetBool("SkipTLSVerify"), // nolint: gosec
|
||||
}
|
||||
|
||||
xmpp.DebugWriter = b.Log.Writer()
|
||||
|
||||
options := xmpp.Options{
|
||||
Host: b.GetString("Server"),
|
||||
User: b.GetString("Jid"),
|
||||
@@ -122,7 +132,6 @@ func (b *Bxmpp) createXMPP() error {
|
||||
StartTLS: true,
|
||||
TLSConfig: tc,
|
||||
Debug: b.GetBool("debug"),
|
||||
Logger: b.Log.Writer(),
|
||||
Session: true,
|
||||
Status: "",
|
||||
StatusMessage: "",
|
||||
@@ -228,6 +237,12 @@ func (b *Bxmpp) handleXMPP() error {
|
||||
event = config.EventTopicChange
|
||||
}
|
||||
|
||||
avatar := getAvatar(b.avatarMap, v.Remote, b.General)
|
||||
if avatar == "" {
|
||||
b.Log.Debugf("Requesting avatar data")
|
||||
b.xc.AvatarRequestData(v.Remote)
|
||||
}
|
||||
|
||||
msgID := v.ID
|
||||
if v.ReplaceID != "" {
|
||||
msgID = v.ReplaceID
|
||||
@@ -237,6 +252,7 @@ func (b *Bxmpp) handleXMPP() error {
|
||||
Text: v.Text,
|
||||
Channel: b.parseChannel(v.Remote),
|
||||
Account: b.Account,
|
||||
Avatar: avatar,
|
||||
UserID: v.Remote,
|
||||
ID: msgID,
|
||||
Event: event,
|
||||
@@ -253,6 +269,8 @@ func (b *Bxmpp) handleXMPP() error {
|
||||
b.Log.Debugf("<= Message is %#v", rmsg)
|
||||
b.Remote <- rmsg
|
||||
}
|
||||
case xmpp.AvatarData:
|
||||
b.handleDownloadAvatar(v)
|
||||
case xmpp.Presence:
|
||||
// Do nothing.
|
||||
}
|
||||
|
52
changelog.md
52
changelog.md
@@ -1,3 +1,55 @@
|
||||
# v1.17.3
|
||||
|
||||
## Enhancements
|
||||
|
||||
- xmpp: Implement User Avatar spoofing of XMPP users #1090
|
||||
- rocketchat: Relay Joins/Topic changes in RocketChat bridge (#1085)
|
||||
- irc: Add JoinDelay option (irc). Fixes #1084 (#1098)
|
||||
- slack: Clip too long messages on 3000 length (slack). Fixes #1081 (#1102)
|
||||
|
||||
## Bugfix
|
||||
|
||||
- general: Fix the behavior of ShowTopicChange and SyncTopic (#1086)
|
||||
- slack: Prevent image/message looping (slack). Fixes #1088 (#1096)
|
||||
- whatsapp: Ignore non-critical errors (whatsapp). Fixes #1094 (#1100)
|
||||
- irc: Add extra space before colon in attachments (irc). Fixes #1089 (#1101)
|
||||
|
||||
This release couldn't exist without the following contributors:
|
||||
@42wim, @ldruschk, @qaisjp, @Polynomdivision
|
||||
|
||||
# v1.17.2
|
||||
|
||||
## Enhancements
|
||||
|
||||
- slack: Update vendor slack-go/slack (#1068)
|
||||
- general: Update vendor d5/tengo (#1066)
|
||||
- general: Clarify terminology used in mapping group chat IDs to channels in config (#1079)
|
||||
|
||||
## Bugfix
|
||||
|
||||
- whatsapp: Update Rhymen/go-whatsapp vendor and whatsapp version (#1078). Fixes Media upload #1074
|
||||
- whatsapp: Reset start timestamp on reconnect (whatsapp). Fixes #1059 (#1064)
|
||||
|
||||
This release couldn't exist without the following contributors:
|
||||
@42wim, @jheiselman
|
||||
|
||||
# v1.17.1
|
||||
|
||||
## Enhancements
|
||||
|
||||
- docker: Remove build dependencies from final image (multistage build) #1057
|
||||
|
||||
## Bugfix
|
||||
|
||||
- general: Don't transmit typing events from ourselves #1056
|
||||
- general: Add support for build tags #1054
|
||||
- discord: Strip extra info from emotes (discord) #1052
|
||||
- msteams: fix macos build: Update vendor yaegashi/msgraph.go to v0.1.2 #1036
|
||||
- whatsapp: Update client version whatsapp. Fixes #1061 #1062
|
||||
|
||||
This release couldn't exist without the following contributors:
|
||||
@awigen, @qaisjp, @42wim
|
||||
|
||||
# v1.17.0
|
||||
|
||||
## New features
|
||||
|
11
gateway/bridgemap/api.go
Normal file
11
gateway/bridgemap/api.go
Normal file
@@ -0,0 +1,11 @@
|
||||
// +build !noapi
|
||||
|
||||
package bridgemap
|
||||
|
||||
import (
|
||||
"github.com/42wim/matterbridge/bridge/api"
|
||||
)
|
||||
|
||||
func init() {
|
||||
FullMap["api"] = api.New
|
||||
}
|
12
gateway/bridgemap/bdiscord.go
Normal file
12
gateway/bridgemap/bdiscord.go
Normal file
@@ -0,0 +1,12 @@
|
||||
// +build !nodiscord
|
||||
|
||||
package bridgemap
|
||||
|
||||
import (
|
||||
bdiscord "github.com/42wim/matterbridge/bridge/discord"
|
||||
)
|
||||
|
||||
func init() {
|
||||
FullMap["discord"] = bdiscord.New
|
||||
UserTypingSupport["discord"] = struct{}{}
|
||||
}
|
11
gateway/bridgemap/bgitter.go
Normal file
11
gateway/bridgemap/bgitter.go
Normal file
@@ -0,0 +1,11 @@
|
||||
// +build !nogitter
|
||||
|
||||
package bridgemap
|
||||
|
||||
import (
|
||||
bgitter "github.com/42wim/matterbridge/bridge/gitter"
|
||||
)
|
||||
|
||||
func init() {
|
||||
FullMap["gitter"] = bgitter.New
|
||||
}
|
11
gateway/bridgemap/birc.go
Normal file
11
gateway/bridgemap/birc.go
Normal file
@@ -0,0 +1,11 @@
|
||||
// +build !noirc
|
||||
|
||||
package bridgemap
|
||||
|
||||
import (
|
||||
birc "github.com/42wim/matterbridge/bridge/irc"
|
||||
)
|
||||
|
||||
func init() {
|
||||
FullMap["irc"] = birc.New
|
||||
}
|
11
gateway/bridgemap/bkeybase.go
Normal file
11
gateway/bridgemap/bkeybase.go
Normal file
@@ -0,0 +1,11 @@
|
||||
// +build !nokeybase
|
||||
|
||||
package bridgemap
|
||||
|
||||
import (
|
||||
bkeybase "github.com/42wim/matterbridge/bridge/keybase"
|
||||
)
|
||||
|
||||
func init() {
|
||||
FullMap["keybase"] = bkeybase.New
|
||||
}
|
11
gateway/bridgemap/bmatrix.go
Normal file
11
gateway/bridgemap/bmatrix.go
Normal file
@@ -0,0 +1,11 @@
|
||||
// +build !nomatrix
|
||||
|
||||
package bridgemap
|
||||
|
||||
import (
|
||||
bmatrix "github.com/42wim/matterbridge/bridge/matrix"
|
||||
)
|
||||
|
||||
func init() {
|
||||
FullMap["matrix"] = bmatrix.New
|
||||
}
|
11
gateway/bridgemap/bmattermost.go
Normal file
11
gateway/bridgemap/bmattermost.go
Normal file
@@ -0,0 +1,11 @@
|
||||
// +build !nomattermost
|
||||
|
||||
package bridgemap
|
||||
|
||||
import (
|
||||
bmattermost "github.com/42wim/matterbridge/bridge/mattermost"
|
||||
)
|
||||
|
||||
func init() {
|
||||
FullMap["mattermost"] = bmattermost.New
|
||||
}
|
11
gateway/bridgemap/bmsteams.go
Normal file
11
gateway/bridgemap/bmsteams.go
Normal file
@@ -0,0 +1,11 @@
|
||||
// +build !nomsteams
|
||||
|
||||
package bridgemap
|
||||
|
||||
import (
|
||||
bmsteams "github.com/42wim/matterbridge/bridge/msteams"
|
||||
)
|
||||
|
||||
func init() {
|
||||
FullMap["msteams"] = bmsteams.New
|
||||
}
|
@@ -2,47 +2,9 @@ package bridgemap
|
||||
|
||||
import (
|
||||
"github.com/42wim/matterbridge/bridge"
|
||||
"github.com/42wim/matterbridge/bridge/api"
|
||||
bdiscord "github.com/42wim/matterbridge/bridge/discord"
|
||||
bgitter "github.com/42wim/matterbridge/bridge/gitter"
|
||||
birc "github.com/42wim/matterbridge/bridge/irc"
|
||||
bkeybase "github.com/42wim/matterbridge/bridge/keybase"
|
||||
bmatrix "github.com/42wim/matterbridge/bridge/matrix"
|
||||
bmattermost "github.com/42wim/matterbridge/bridge/mattermost"
|
||||
bmsteams "github.com/42wim/matterbridge/bridge/msteams"
|
||||
brocketchat "github.com/42wim/matterbridge/bridge/rocketchat"
|
||||
bslack "github.com/42wim/matterbridge/bridge/slack"
|
||||
bsshchat "github.com/42wim/matterbridge/bridge/sshchat"
|
||||
bsteam "github.com/42wim/matterbridge/bridge/steam"
|
||||
btelegram "github.com/42wim/matterbridge/bridge/telegram"
|
||||
bwhatsapp "github.com/42wim/matterbridge/bridge/whatsapp"
|
||||
bxmpp "github.com/42wim/matterbridge/bridge/xmpp"
|
||||
bzulip "github.com/42wim/matterbridge/bridge/zulip"
|
||||
)
|
||||
|
||||
var (
|
||||
FullMap = map[string]bridge.Factory{
|
||||
"api": api.New,
|
||||
"discord": bdiscord.New,
|
||||
"gitter": bgitter.New,
|
||||
"irc": birc.New,
|
||||
"mattermost": bmattermost.New,
|
||||
"matrix": bmatrix.New,
|
||||
"rocketchat": brocketchat.New,
|
||||
"slack-legacy": bslack.NewLegacy,
|
||||
"slack": bslack.New,
|
||||
"sshchat": bsshchat.New,
|
||||
"steam": bsteam.New,
|
||||
"telegram": btelegram.New,
|
||||
"whatsapp": bwhatsapp.New,
|
||||
"xmpp": bxmpp.New,
|
||||
"zulip": bzulip.New,
|
||||
"keybase": bkeybase.New,
|
||||
"msteams": bmsteams.New,
|
||||
}
|
||||
|
||||
UserTypingSupport = map[string]struct{}{
|
||||
"slack": {},
|
||||
"discord": {},
|
||||
}
|
||||
FullMap = map[string]bridge.Factory{}
|
||||
UserTypingSupport = map[string]struct{}{}
|
||||
)
|
||||
|
11
gateway/bridgemap/brocketchat.go
Normal file
11
gateway/bridgemap/brocketchat.go
Normal file
@@ -0,0 +1,11 @@
|
||||
// +build !norocketchat
|
||||
|
||||
package bridgemap
|
||||
|
||||
import (
|
||||
brocketchat "github.com/42wim/matterbridge/bridge/rocketchat"
|
||||
)
|
||||
|
||||
func init() {
|
||||
FullMap["rocketchat"] = brocketchat.New
|
||||
}
|
13
gateway/bridgemap/bslack.go
Normal file
13
gateway/bridgemap/bslack.go
Normal file
@@ -0,0 +1,13 @@
|
||||
// +build !noslack
|
||||
|
||||
package bridgemap
|
||||
|
||||
import (
|
||||
bslack "github.com/42wim/matterbridge/bridge/slack"
|
||||
)
|
||||
|
||||
func init() {
|
||||
FullMap["slack-legacy"] = bslack.NewLegacy
|
||||
FullMap["slack"] = bslack.New
|
||||
UserTypingSupport["slack"] = struct{}{}
|
||||
}
|
11
gateway/bridgemap/bsshchat.go
Normal file
11
gateway/bridgemap/bsshchat.go
Normal file
@@ -0,0 +1,11 @@
|
||||
// +build !nosshchat
|
||||
|
||||
package bridgemap
|
||||
|
||||
import (
|
||||
bsshchat "github.com/42wim/matterbridge/bridge/sshchat"
|
||||
)
|
||||
|
||||
func init() {
|
||||
FullMap["sshchat"] = bsshchat.New
|
||||
}
|
11
gateway/bridgemap/bsteam.go
Normal file
11
gateway/bridgemap/bsteam.go
Normal file
@@ -0,0 +1,11 @@
|
||||
// +build !nosteam
|
||||
|
||||
package bridgemap
|
||||
|
||||
import (
|
||||
bsteam "github.com/42wim/matterbridge/bridge/steam"
|
||||
)
|
||||
|
||||
func init() {
|
||||
FullMap["steam"] = bsteam.New
|
||||
}
|
11
gateway/bridgemap/btelegram.go
Normal file
11
gateway/bridgemap/btelegram.go
Normal file
@@ -0,0 +1,11 @@
|
||||
// +build !notelegram
|
||||
|
||||
package bridgemap
|
||||
|
||||
import (
|
||||
btelegram "github.com/42wim/matterbridge/bridge/telegram"
|
||||
)
|
||||
|
||||
func init() {
|
||||
FullMap["telegram"] = btelegram.New
|
||||
}
|
11
gateway/bridgemap/bwhatsapp.go
Normal file
11
gateway/bridgemap/bwhatsapp.go
Normal file
@@ -0,0 +1,11 @@
|
||||
// +build !nowhatsapp
|
||||
|
||||
package bridgemap
|
||||
|
||||
import (
|
||||
bwhatsapp "github.com/42wim/matterbridge/bridge/whatsapp"
|
||||
)
|
||||
|
||||
func init() {
|
||||
FullMap["whatsapp"] = bwhatsapp.New
|
||||
}
|
11
gateway/bridgemap/bxmpp.go
Normal file
11
gateway/bridgemap/bxmpp.go
Normal file
@@ -0,0 +1,11 @@
|
||||
// +build !noxmpp
|
||||
|
||||
package bridgemap
|
||||
|
||||
import (
|
||||
bxmpp "github.com/42wim/matterbridge/bridge/xmpp"
|
||||
)
|
||||
|
||||
func init() {
|
||||
FullMap["xmpp"] = bxmpp.New
|
||||
}
|
11
gateway/bridgemap/bzulip.go
Normal file
11
gateway/bridgemap/bzulip.go
Normal file
@@ -0,0 +1,11 @@
|
||||
// +build !nozulip
|
||||
|
||||
package bridgemap
|
||||
|
||||
import (
|
||||
bzulip "github.com/42wim/matterbridge/bridge/zulip"
|
||||
)
|
||||
|
||||
func init() {
|
||||
FullMap["zulip"] = bzulip.New
|
||||
}
|
@@ -169,7 +169,7 @@ func (gw *Gateway) ignoreEvent(event string, dest *bridge.Bridge) bool {
|
||||
switch event {
|
||||
case config.EventAvatarDownload:
|
||||
// Avatar downloads are only relevant for telegram and mattermost for now
|
||||
if dest.Protocol != "mattermost" && dest.Protocol != "telegram" {
|
||||
if dest.Protocol != "mattermost" && dest.Protocol != "telegram" && dest.Protocol != "xmpp" {
|
||||
return true
|
||||
}
|
||||
case config.EventJoinLeave:
|
||||
@@ -179,7 +179,7 @@ func (gw *Gateway) ignoreEvent(event string, dest *bridge.Bridge) bool {
|
||||
}
|
||||
case config.EventTopicChange:
|
||||
// only relay topic change when used in some way on other side
|
||||
if dest.GetBool("ShowTopicChange") && dest.GetBool("SyncTopic") {
|
||||
if !dest.GetBool("ShowTopicChange") && !dest.GetBool("SyncTopic") {
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
16
go.mod
16
go.mod
@@ -5,8 +5,8 @@ require (
|
||||
github.com/Baozisoftware/qrcode-terminal-go v0.0.0-20170407111555-c0650d8dff0f
|
||||
github.com/Jeffail/gabs v1.1.1 // indirect
|
||||
github.com/Philipp15b/go-steam v1.0.1-0.20190816133340-b04c5a83c1c0
|
||||
github.com/Rhymen/go-whatsapp v0.1.0
|
||||
github.com/d5/tengo/v2 v2.0.2
|
||||
github.com/Rhymen/go-whatsapp v0.1.1-0.20200408093540-2f227c53b44f
|
||||
github.com/d5/tengo/v2 v2.1.2
|
||||
github.com/dfordsoft/golib v0.0.0-20180902042739-76ee6ab99bec
|
||||
github.com/fsnotify/fsnotify v1.4.7
|
||||
github.com/go-telegram-bot-api/telegram-bot-api v4.6.5-0.20181225215658-ec221ba9ea45+incompatible
|
||||
@@ -21,14 +21,13 @@ require (
|
||||
github.com/keybase/go-keybase-chat-bot v0.0.0-20200226211841-4e48f3eaef3e
|
||||
github.com/labstack/echo/v4 v4.1.13
|
||||
github.com/lrstanley/girc v0.0.0-20190801035559-4fc93959e1a7
|
||||
github.com/matterbridge/Rocket.Chat.Go.SDK v0.0.0-20190210153444-cc9d05784d5d
|
||||
github.com/matterbridge/Rocket.Chat.Go.SDK v0.0.0-20200411204219-d5c18ce75048
|
||||
github.com/matterbridge/discordgo v0.18.1-0.20200308151012-aa40f01cbcc3
|
||||
github.com/matterbridge/emoji v2.1.1-0.20191117213217-af507f6b02db+incompatible
|
||||
github.com/matterbridge/go-xmpp v0.0.0-20180529212104-cd19799fba91
|
||||
github.com/matterbridge/go-xmpp v0.0.0-20200418225040-c8a3a57b4050
|
||||
github.com/matterbridge/gomatrix v0.0.0-20200209224845-c2104d7936a6
|
||||
github.com/matterbridge/gozulipbot v0.0.0-20190212232658-7aa251978a18
|
||||
github.com/matterbridge/logrus-prefixed-formatter v0.0.0-20180806162718-01618749af61
|
||||
github.com/matterbridge/msgraph.go v0.0.0-20200308150230-9e043fe9dbaa
|
||||
github.com/mattermost/mattermost-server v5.5.0+incompatible
|
||||
github.com/mattn/go-runewidth v0.0.7 // indirect
|
||||
github.com/mattn/godown v0.0.0-20180312012330-2e9e17e0ea51
|
||||
@@ -46,14 +45,15 @@ require (
|
||||
github.com/saintfish/chardet v0.0.0-20120816061221-3af4cd4741ca
|
||||
github.com/shazow/ssh-chat v1.8.3-0.20200308224626-80ddf1f43a98
|
||||
github.com/sirupsen/logrus v1.4.2
|
||||
github.com/slack-go/slack v0.6.3-0.20200228121756-f56d616d5901
|
||||
github.com/slack-go/slack v0.6.3
|
||||
github.com/spf13/viper v1.6.1
|
||||
github.com/stretchr/testify v1.4.0
|
||||
github.com/technoweenie/multipartstreamer v1.0.1 // indirect
|
||||
github.com/x-cray/logrus-prefixed-formatter v0.5.2 // indirect
|
||||
github.com/yaegashi/msgraph.go v0.1.2
|
||||
github.com/zfjagann/golang-ring v0.0.0-20190106091943-a88bb6aef447
|
||||
golang.org/x/image v0.0.0-20191214001246-9130b4cfad52
|
||||
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45
|
||||
golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d
|
||||
gopkg.in/fsnotify.v1 v1.4.7 // indirect
|
||||
gopkg.in/natefinch/lumberjack.v2 v2.0.0 // indirect
|
||||
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect
|
||||
@@ -61,6 +61,4 @@ require (
|
||||
|
||||
//replace github.com/bwmarrin/discordgo v0.20.2 => github.com/matterbridge/discordgo v0.18.1-0.20200109173909-ed873362fa43
|
||||
|
||||
//replace github.com/yaegashi/msgraph.go => github.com/matterbridge/msgraph.go v0.0.0-20191226214848-9e5d9c08a4e1
|
||||
|
||||
go 1.13
|
||||
|
34
go.sum
34
go.sum
@@ -12,8 +12,8 @@ github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAE
|
||||
github.com/Philipp15b/go-steam v1.0.1-0.20190816133340-b04c5a83c1c0 h1:TO7d4rocnNFng6ZQrPe7U6WqHtK5eHEMrgrnnM/72IQ=
|
||||
github.com/Philipp15b/go-steam v1.0.1-0.20190816133340-b04c5a83c1c0/go.mod h1:HuVM+sZFzumUdKPWiz+IlCMb4RdsKdT3T+nQBKL+sYg=
|
||||
github.com/Rhymen/go-whatsapp v0.0.0/go.mod h1:rdQr95g2C1xcOfM7QGOhza58HeI3I+tZ/bbluv7VazA=
|
||||
github.com/Rhymen/go-whatsapp v0.1.0 h1:XTXhFIQ/fx9jKObUnUX2Q+nh58EyeHNhX7DniE8xeuA=
|
||||
github.com/Rhymen/go-whatsapp v0.1.0/go.mod h1:xJSy+okeRjKkQEH/lEYrnekXB3PG33fqL0I6ncAkV50=
|
||||
github.com/Rhymen/go-whatsapp v0.1.1-0.20200408093540-2f227c53b44f h1:uclEol7RbpElhXXmwu38PDeGcgMXNU2vh5DWwzlg7xI=
|
||||
github.com/Rhymen/go-whatsapp v0.1.1-0.20200408093540-2f227c53b44f/go.mod h1:o7jjkvKnigfu432dMbQ/w4PH0Yp5u4Y6ysCNjUlcYCk=
|
||||
github.com/Rhymen/go-whatsapp/examples/echo v0.0.0-20190325075644-cc2581bbf24d/go.mod h1:zgCiQtBtZ4P4gFWvwl9aashsdwOcbb/EHOGRmSzM8ME=
|
||||
github.com/Rhymen/go-whatsapp/examples/restoreSession v0.0.0-20190325075644-cc2581bbf24d/go.mod h1:5sCUSpG616ZoSJhlt9iBNI/KXBqrVLcNUJqg7J9+8pU=
|
||||
github.com/Rhymen/go-whatsapp/examples/sendImage v0.0.0-20190325075644-cc2581bbf24d/go.mod h1:RdiyhanVEGXTam+mZ3k6Y3VDCCvXYCwReOoxGozqhHw=
|
||||
@@ -33,8 +33,8 @@ github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc
|
||||
github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=
|
||||
github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=
|
||||
github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA=
|
||||
github.com/d5/tengo/v2 v2.0.2 h1:3APkPZPc1FExaJoWrN5YzvDqc6GNkQH6ehmCRDmN83I=
|
||||
github.com/d5/tengo/v2 v2.0.2/go.mod h1:XRGjEs5I9jYIKTxly6HCF8oiiilk5E/RYXOZ5b0DZC8=
|
||||
github.com/d5/tengo/v2 v2.1.2 h1:JR5O6qJW2GW9lpv/MfEqK16a/Wpp2y8I0JZZ5fqNOL0=
|
||||
github.com/d5/tengo/v2 v2.1.2/go.mod h1:XRGjEs5I9jYIKTxly6HCF8oiiilk5E/RYXOZ5b0DZC8=
|
||||
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
||||
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
@@ -124,22 +124,20 @@ github.com/lrstanley/girc v0.0.0-20190801035559-4fc93959e1a7 h1:BS9tqL0OCiOGuy/C
|
||||
github.com/lrstanley/girc v0.0.0-20190801035559-4fc93959e1a7/go.mod h1:liX5MxHPrwgHaKowoLkYGwbXfYABh1jbZ6FpElbGF1I=
|
||||
github.com/magiconair/properties v1.8.1 h1:ZC2Vc7/ZFkGmsVC9KvOjumD+G5lXy2RtTKyzRKO2BQ4=
|
||||
github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
|
||||
github.com/matterbridge/Rocket.Chat.Go.SDK v0.0.0-20190210153444-cc9d05784d5d h1:F+Sr+C0ojSlYQ37BLylQtSFmyQULe3jbAygcyXQ9mVs=
|
||||
github.com/matterbridge/Rocket.Chat.Go.SDK v0.0.0-20190210153444-cc9d05784d5d/go.mod h1:c6MxwqHD+0HvtAJjsHMIdPCiAwGiQwPRPTp69ACMg8A=
|
||||
github.com/matterbridge/Rocket.Chat.Go.SDK v0.0.0-20200411204219-d5c18ce75048 h1:B9HaistmV+MD8/33BXmZe1zPIn+RImAFVXNNSOrwU2E=
|
||||
github.com/matterbridge/Rocket.Chat.Go.SDK v0.0.0-20200411204219-d5c18ce75048/go.mod h1:c6MxwqHD+0HvtAJjsHMIdPCiAwGiQwPRPTp69ACMg8A=
|
||||
github.com/matterbridge/discordgo v0.18.1-0.20200308151012-aa40f01cbcc3 h1:VP/DNRn2HtrVRN6+X3h4FDcQI2OOKT+88WUi21ZD1Kw=
|
||||
github.com/matterbridge/discordgo v0.18.1-0.20200308151012-aa40f01cbcc3/go.mod h1:5a1bHtG/38ofcx9cgwM5eTW/Pl4SpbQksNDnTRcGA2Y=
|
||||
github.com/matterbridge/emoji v2.1.1-0.20191117213217-af507f6b02db+incompatible h1:oaOqwbg5HxHRxvAbd84ks0Okwoc1ISyUZ87EiVJFhGI=
|
||||
github.com/matterbridge/emoji v2.1.1-0.20191117213217-af507f6b02db+incompatible/go.mod h1:igE6rUAn3jai2wCdsjFHfhUoekjrFthoEjFObKKwSb4=
|
||||
github.com/matterbridge/go-xmpp v0.0.0-20180529212104-cd19799fba91 h1:KzDEcy8eDbTx881giW8a6llsAck3e2bJvMyKvh1IK+k=
|
||||
github.com/matterbridge/go-xmpp v0.0.0-20180529212104-cd19799fba91/go.mod h1:ECDRehsR9TYTKCAsRS8/wLeOk6UUqDydw47ln7wG41Q=
|
||||
github.com/matterbridge/go-xmpp v0.0.0-20200418225040-c8a3a57b4050 h1:kWkP1lXpkvtoNL08jkP3XQH/zvDOEXJpdCJd/DlIvMw=
|
||||
github.com/matterbridge/go-xmpp v0.0.0-20200418225040-c8a3a57b4050/go.mod h1:ECDRehsR9TYTKCAsRS8/wLeOk6UUqDydw47ln7wG41Q=
|
||||
github.com/matterbridge/gomatrix v0.0.0-20200209224845-c2104d7936a6 h1:Kl65VJv38HjYFnnwH+MP6Z8hcJT5UHuSpHVU5vW1HH0=
|
||||
github.com/matterbridge/gomatrix v0.0.0-20200209224845-c2104d7936a6/go.mod h1:+jWeaaUtXQbBRdKYWfjW6JDDYiI2XXE+3NnTjW5kg8g=
|
||||
github.com/matterbridge/gozulipbot v0.0.0-20190212232658-7aa251978a18 h1:fLhwXtWGtfTgZVxHG1lcKjv+re7dRwyyuYFNu69xdho=
|
||||
github.com/matterbridge/gozulipbot v0.0.0-20190212232658-7aa251978a18/go.mod h1:yAjnZ34DuDyPHMPHHjOsTk/FefW4JJjoMMCGt/8uuQA=
|
||||
github.com/matterbridge/logrus-prefixed-formatter v0.0.0-20180806162718-01618749af61 h1:R/MgM/eUyRBQx2FiH6JVmXck8PaAuKfe2M1tWIzW7nE=
|
||||
github.com/matterbridge/logrus-prefixed-formatter v0.0.0-20180806162718-01618749af61/go.mod h1:iXGEotOvwI1R1SjLxRc+BF5rUORTMtE0iMZBT2lxqAU=
|
||||
github.com/matterbridge/msgraph.go v0.0.0-20200308150230-9e043fe9dbaa h1:ZP87nK5Mhgvt6Rpgbztdmq9+6cb3aZ6MgW/JWKbnMrI=
|
||||
github.com/matterbridge/msgraph.go v0.0.0-20200308150230-9e043fe9dbaa/go.mod h1:l0kx9L8Z+NbBCGrQ/y+ldKZ/fiwBZjPoXwDS55LTumI=
|
||||
github.com/mattermost/mattermost-server v5.5.0+incompatible h1:0wcLGgYtd+YImtLDPf2AOfpBHxbU4suATx+6XKw1XbU=
|
||||
github.com/mattermost/mattermost-server v5.5.0+incompatible/go.mod h1:5L6MjAec+XXQwMIt791Ganu45GKsSiM+I0tLR9wUj8Y=
|
||||
github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ=
|
||||
@@ -169,6 +167,8 @@ github.com/nelsonken/gomf v0.0.0-20180504123937-a9dd2f9deae9 h1:mp6tU1r0xLostUGL
|
||||
github.com/nelsonken/gomf v0.0.0-20180504123937-a9dd2f9deae9/go.mod h1:A5SRAcpTemjGgIuBq6Kic2yHcoeUFWUinOAlMP/i9xo=
|
||||
github.com/nicksnyder/go-i18n v1.4.0 h1:AgLl+Yq7kg5OYlzCgu9cKTZOyI4tD/NgukKqLqC8E+I=
|
||||
github.com/nicksnyder/go-i18n v1.4.0/go.mod h1:HrK7VCrbOvQoUAQ7Vpy7i87N7JZZZ7R2xBGjv0j365Q=
|
||||
github.com/nlopes/slack v0.6.0 h1:jt0jxVQGhssx1Ib7naAOZEZcGdtIhTzkP0nopK0AsRA=
|
||||
github.com/nlopes/slack v0.6.0/go.mod h1:JzQ9m3PMAqcpeCam7UaHSuBuupz7CmpjehYMayT6YOk=
|
||||
github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U=
|
||||
github.com/onsi/ginkgo v1.6.0 h1:Ix8l273rp3QzYgXSR+c8d1fTG7UPgYkOSELPhiY/YGw=
|
||||
github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
|
||||
@@ -194,6 +194,10 @@ github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y8
|
||||
github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
|
||||
github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
|
||||
github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU=
|
||||
github.com/rickb777/date v1.12.4 h1:+6IzcCCS/1t17DrmnEvrznyq7nM8vPwir6/UhlyohKw=
|
||||
github.com/rickb777/date v1.12.4/go.mod h1:xP0eo/I5qmUt97yRGClHZfyLZ3ikMw6v6SU5MOGZTE0=
|
||||
github.com/rickb777/plural v1.2.0 h1:5tvEc7UBCZ7l8h/2UeybSkt/uu1DQsZFOFdNevmUhlE=
|
||||
github.com/rickb777/plural v1.2.0/go.mod h1:UdpyWFCGbo3mvK3f/PfZOAOrkjzJlYN/sD46XNWJ+Es=
|
||||
github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg=
|
||||
github.com/rs/xid v1.2.1 h1:mhH9Nq+C1fY2l1XIpgxIiUOfNpRBYH1kKcr+qfKgjRc=
|
||||
github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ=
|
||||
@@ -212,8 +216,8 @@ github.com/sirupsen/logrus v1.4.2 h1:SPIRibHv4MatM3XXNO2BJeFLZwZ2LvZgfQ5+UNI2im4
|
||||
github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=
|
||||
github.com/skip2/go-qrcode v0.0.0-20190110000554-dc11ecdae0a9 h1:lpEzuenPuO1XNTeikEmvqYFcU37GVLl8SRNblzyvGBE=
|
||||
github.com/skip2/go-qrcode v0.0.0-20190110000554-dc11ecdae0a9/go.mod h1:PLPIyL7ikehBD1OAjmKKiOEhbvWyHGaNDjquXMcYABo=
|
||||
github.com/slack-go/slack v0.6.3-0.20200228121756-f56d616d5901 h1:sXIMY2YPYEm5NoGMCrJC50N+8t9W6vbY9qr61zcLEAE=
|
||||
github.com/slack-go/slack v0.6.3-0.20200228121756-f56d616d5901/go.mod h1:ZUNi+O1Pwr2ch2UOp2AfF+s7QYQgwht2Cd1UTeIYw9A=
|
||||
github.com/slack-go/slack v0.6.3 h1:qU037g8gQ71EuH6S9zYKnvYrEUj0fLFH4HFekFqBoRU=
|
||||
github.com/slack-go/slack v0.6.3/go.mod h1:HE4RwNe7YpOg/F0vqo5PwXH3Hki31TplTvKRW9dGGaw=
|
||||
github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d h1:zE9ykElWQ6/NYmHa3jpm/yHnI4xSofP+UP6SpjHcSeM=
|
||||
github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc=
|
||||
github.com/smartystreets/goconvey v1.6.4 h1:fv0U8FUIMPNf1L9lnHLvLhgicrIVChEkdzIKYqbNC9s=
|
||||
@@ -251,6 +255,8 @@ github.com/x-cray/logrus-prefixed-formatter v0.5.2/go.mod h1:2duySbKsL6M18s5GU7V
|
||||
github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU=
|
||||
github.com/xlab/treeprint v0.0.0-20180616005107-d6fb6747feb6/go.mod h1:ce1O1j6UtZfjr22oyGxGLbauSBp2YVXpARAosm7dHBg=
|
||||
github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q=
|
||||
github.com/yaegashi/msgraph.go v0.1.2 h1:83uVRQaj8YBsVqOUGj0WRwzxdgGF69jRpg5IQYaTvoY=
|
||||
github.com/yaegashi/msgraph.go v0.1.2/go.mod h1:Lp39e9oo596G5FcmMKI0cXR3mg/QikSdabgZdbMqbAM=
|
||||
github.com/zfjagann/golang-ring v0.0.0-20190106091943-a88bb6aef447 h1:CHgPZh8bFkZmislPrr/0gd7MciDAX+JJB70A2/5Lvmo=
|
||||
github.com/zfjagann/golang-ring v0.0.0-20190106091943-a88bb6aef447/go.mod h1:0MsIttMJIF/8Y7x0XjonJP7K99t3sR6bjj4m5S4JmqU=
|
||||
go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
|
||||
@@ -284,8 +290,8 @@ golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR
|
||||
golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553 h1:efeOvDhwQ29Dj3SdAV/MJf8oukgn+8D8WgaCaRMchF8=
|
||||
golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
|
||||
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45 h1:SVwTIAaPC2U/AvvLNZ2a7OVsmBpC8L5BlwK1whH3hm0=
|
||||
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
||||
golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d h1:TzXSXBo42m9gQenoE3b9BGiEpg5IG2JkU5FkPIawgtw=
|
||||
golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
||||
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
|
@@ -15,7 +15,7 @@ import (
|
||||
)
|
||||
|
||||
var (
|
||||
version = "1.17.0"
|
||||
version = "1.17.3"
|
||||
githash string
|
||||
|
||||
flagConfig = flag.String("conf", "matterbridge.toml", "config file")
|
||||
|
@@ -177,6 +177,12 @@ StripNick=false
|
||||
#OPTIONAL (default false)
|
||||
ShowTopicChange=false
|
||||
|
||||
#Delay in milliseconds between channel joins
|
||||
#Only useful when you have a LOT of channels to join
|
||||
#See https://github.com/42wim/matterbridge/issues/1084
|
||||
#OPTIONAL (default 0)
|
||||
JoinDelay=0
|
||||
|
||||
###################################################################
|
||||
#XMPP section
|
||||
###################################################################
|
||||
@@ -545,6 +551,96 @@ Label=""
|
||||
# REQUIRED
|
||||
Team="myteam"
|
||||
|
||||
###################################################################
|
||||
# Microsoft teams section
|
||||
# See https://github.com/42wim/matterbridge/wiki/MS-Teams-setup
|
||||
###################################################################
|
||||
|
||||
[msteams.myteam]
|
||||
|
||||
# TenantID
|
||||
# See https://github.com/42wim/matterbridge/wiki/MS-Teams-setup#get-necessary-ids-for-matterbridge
|
||||
TenantID="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
|
||||
|
||||
# ClientID
|
||||
# See https://github.com/42wim/matterbridge/wiki/MS-Teams-setup#get-necessary-ids-for-matterbridge
|
||||
ClientID="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
|
||||
|
||||
# TeamID
|
||||
# See https://github.com/42wim/matterbridge/wiki/MS-Teams-setup#get-necessary-ids-for-matterbridge
|
||||
TeamID="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
|
||||
|
||||
## RELOADABLE SETTINGS
|
||||
## Settings below can be reloaded by editing the file
|
||||
|
||||
#Nicks you want to ignore.
|
||||
#Regular expressions supported
|
||||
#Messages from those users will not be sent to other bridges.
|
||||
#OPTIONAL
|
||||
IgnoreNicks="ircspammer1 ircspammer2"
|
||||
|
||||
#Messages you want to ignore.
|
||||
#Messages matching these regexp will be ignored and not sent to other bridges
|
||||
#See https://regex-golang.appspot.com/assets/html/index.html for more regex info
|
||||
#OPTIONAL (example below ignores messages starting with ~~ or messages containing badword
|
||||
IgnoreMessages="^~~ badword"
|
||||
|
||||
#messages you want to replace.
|
||||
#it replaces outgoing messages from the bridge.
|
||||
#so you need to place it by the sending bridge definition.
|
||||
#regular expressions supported
|
||||
#some examples:
|
||||
#this replaces cat => dog and sleep => awake
|
||||
#replacemessages=[ ["cat","dog"], ["sleep","awake"] ]
|
||||
#this replaces every number with number. 123 => numbernumbernumber
|
||||
#replacemessages=[ ["[0-9]","number"] ]
|
||||
#optional (default empty)
|
||||
ReplaceMessages=[ ["cat","dog"] ]
|
||||
|
||||
#nicks you want to replace.
|
||||
#see replacemessages for syntaxa
|
||||
#optional (default empty)
|
||||
ReplaceNicks=[ ["user--","user"] ]
|
||||
|
||||
#Extractnicks is used to for example rewrite messages from other relaybots
|
||||
#See https://github.com/42wim/matterbridge/issues/713 and https://github.com/42wim/matterbridge/issues/466
|
||||
#some examples:
|
||||
#this replaces a message like "Relaybot: <relayeduser> something interesting" to "relayeduser: something interesting"
|
||||
#ExtractNicks=[ [ "Relaybot", "<(.*?)>\\s+" ] ]
|
||||
#you can use multiple entries for multiplebots
|
||||
#this also replaces a message like "otherbot: (relayeduser) something else" to "relayeduser: something else"
|
||||
#ExtractNicks=[ [ "Relaybot", "<(.*?)>\\s+" ],[ "otherbot","\\((.*?)\\)\\s+" ]
|
||||
#OPTIONAL (default empty)
|
||||
ExtractNicks=[ ["otherbot","<(.*?)>\\s+" ] ]
|
||||
|
||||
#extra label that can be used in the RemoteNickFormat
|
||||
#optional (default empty)
|
||||
Label=""
|
||||
|
||||
#RemoteNickFormat defines how remote users appear on this bridge
|
||||
#See [general] config section for default options
|
||||
RemoteNickFormat="[{PROTOCOL}] <{NICK}> "
|
||||
|
||||
#Enable to show users joins/parts from other bridges
|
||||
#Currently works for messages from the following bridges: irc, mattermost, slack, discord
|
||||
#OPTIONAL (default false)
|
||||
ShowJoinPart=false
|
||||
|
||||
#StripNick only allows alphanumerical nicks. See https://github.com/42wim/matterbridge/issues/285
|
||||
#It will strip other characters from the nick
|
||||
#OPTIONAL (default false)
|
||||
StripNick=false
|
||||
|
||||
#Enable to show topic changes from other bridges
|
||||
#Only works hiding/show topic changes from slack bridge for now
|
||||
#OPTIONAL (default false)
|
||||
ShowTopicChange=false
|
||||
|
||||
#Opportunistically preserve threaded replies between bridges
|
||||
#that support threading
|
||||
#OPTIONAL (default false)
|
||||
PreserveThreading=false
|
||||
|
||||
###################################################################
|
||||
#slack section
|
||||
###################################################################
|
||||
@@ -1589,32 +1685,44 @@ enable=true
|
||||
# REQUIRED
|
||||
account="irc.freenode"
|
||||
|
||||
# channel to connect on that account
|
||||
# How to specify them for the different bridges:
|
||||
# The channel key in each gateway is mapped to a similar group chat ID on the chat platform
|
||||
# To find the group chat ID for different platforms, refer to the table below
|
||||
#
|
||||
# irc - #channel (# is required) (this needs to be lowercase!)
|
||||
# mattermost - channel (the channel name as seen in the URL, not the displayname)
|
||||
# gitter - username/room
|
||||
# xmpp - channel
|
||||
# slack - channel (without the #)
|
||||
# - ID:C123456 (where C123456 is the channel ID) does not work with webhook
|
||||
# discord - channel (without the #)
|
||||
# - ID:123456789 (where 123456789 is the channel ID)
|
||||
# (https://github.com/42wim/matterbridge/issues/57)
|
||||
# - category/channel (without the #) if you're using discord categories to group your channels
|
||||
# telegram - chatid (a large negative number, eg -123456789)
|
||||
# see (https://www.linkedin.com/pulse/telegram-bots-beginners-marco-frau)
|
||||
# hipchat - id_channel (see https://www.hipchat.com/account/xmpp for the correct channel)
|
||||
# rocketchat - #channel (# is required (also needed for private channels!)
|
||||
# matrix - #channel:server (eg #yourchannel:matrix.org)
|
||||
# - encrypted rooms are not supported in matrix
|
||||
# steam - chatid (a large number).
|
||||
# The number in the URL when you click "enter chat room" in the browser
|
||||
# whatsapp - 48111222333-123455678999@g.us A unique group JID;
|
||||
# if you specify an empty string bridge will list all the possibilities
|
||||
# - "Group Name" if you specify a group name the bridge will hint its JID to specify
|
||||
# as group names might change in time and contain weird emoticons
|
||||
# zulip - stream/topic:topicname (without the #)
|
||||
# Platform | Identifier name | Example | Description
|
||||
# -------------------------------------------------------------------------------------------------------------------------------------
|
||||
# | channel | general | Do not include the # symbol
|
||||
# discord | channel id | ID:123456789 | See https://github.com/42wim/matterbridge/issues/57
|
||||
# | category/channel | Media/gaming | Without # symbol. If you're using discord categories to group your channels
|
||||
# -------------------------------------------------------------------------------------------------------------------------------------
|
||||
# gitter | username/room | general | As seen in the gitter.im URL
|
||||
# -------------------------------------------------------------------------------------------------------------------------------------
|
||||
# hipchat | id_channel | example needed | See https://www.hipchat.com/account/xmpp for the correct channel
|
||||
# -------------------------------------------------------------------------------------------------------------------------------------
|
||||
# irc | channel | #general | The # symbol is required and should be lowercase!
|
||||
# -------------------------------------------------------------------------------------------------------------------------------------
|
||||
# mattermost | channel | general | This is the channel name as seen in the URL, not the display name
|
||||
# -------------------------------------------------------------------------------------------------------------------------------------
|
||||
# matrix | #channel:server | #yourchannel:matrix.org | Encrypted rooms are not supported in matrix
|
||||
# -------------------------------------------------------------------------------------------------------------------------------------
|
||||
# msteams | threadId | 19:82abcxx@thread.skype | You'll find the threadId in the URL
|
||||
# -------------------------------------------------------------------------------------------------------------------------------------
|
||||
# rocketchat | channel | #channel | # is required for private channels too
|
||||
# -------------------------------------------------------------------------------------------------------------------------------------
|
||||
# slack | channel name | general | Do not include the # symbol
|
||||
# | channel id | ID:C123456 | The underlying ID of a channel. This doesn't work with
|
||||
# -------------------------------------------------------------------------------------------------------------------------------------
|
||||
# steam | chatid | example needed | The number in the URL when you click "enter chat room" in the browser
|
||||
# -------------------------------------------------------------------------------------------------------------------------------------
|
||||
# telegram | chatid | -123456789 | A large negative number. see https://www.linkedin.com/pulse/telegram-bots-beginners-marco-frau
|
||||
# -------------------------------------------------------------------------------------------------------------------------------------
|
||||
# whatsapp | group JID | 48111222333-123455678999@g.us | A unique group JID. If you specify an empty string, bridge will list all the possibilities
|
||||
# | "Group Name" | "Family Chat" | if you specify a group name, the bridge will find hint the JID to specify. Names can change over time and are not stable.
|
||||
# -------------------------------------------------------------------------------------------------------------------------------------
|
||||
# xmpp | channel | general | The room name
|
||||
# -------------------------------------------------------------------------------------------------------------------------------------
|
||||
# zulip | stream/topic:topic | general/off-topic:food | Do not use the # when specifying a topic
|
||||
# -------------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
#
|
||||
# REQUIRED
|
||||
channel="#testing"
|
||||
|
1481
vendor/github.com/Rhymen/go-whatsapp/binary/proto/def.pb.go
generated
vendored
1481
vendor/github.com/Rhymen/go-whatsapp/binary/proto/def.pb.go
generated
vendored
File diff suppressed because it is too large
Load Diff
78
vendor/github.com/Rhymen/go-whatsapp/binary/proto/def.proto
generated
vendored
78
vendor/github.com/Rhymen/go-whatsapp/binary/proto/def.proto
generated
vendored
@@ -56,6 +56,8 @@ message Location {
|
||||
}
|
||||
|
||||
message Point {
|
||||
optional int32 xDeprecated = 1;
|
||||
optional int32 yDeprecated = 2;
|
||||
optional double x = 3;
|
||||
optional double y = 4;
|
||||
}
|
||||
@@ -93,6 +95,7 @@ message ContextInfo {
|
||||
optional AdReplyInfo quotedAd = 23;
|
||||
optional MessageKey placeholderKey = 24;
|
||||
optional uint32 expiration = 25;
|
||||
optional int64 ephemeralSettingTimestamp = 26;
|
||||
}
|
||||
|
||||
message SenderKeyDistributionMessage {
|
||||
@@ -136,6 +139,11 @@ message LocationMessage {
|
||||
optional string name = 3;
|
||||
optional string address = 4;
|
||||
optional string url = 5;
|
||||
optional bool isLive = 6;
|
||||
optional uint32 accuracyInMeters = 7;
|
||||
optional float speedInMps = 8;
|
||||
optional uint32 degreesClockwiseFromMagneticNorth = 9;
|
||||
optional string comment = 11;
|
||||
optional bytes jpegThumbnail = 16;
|
||||
optional ContextInfo contextInfo = 17;
|
||||
}
|
||||
@@ -238,9 +246,29 @@ message ProtocolMessage {
|
||||
enum PROTOCOL_MESSAGE_TYPE {
|
||||
REVOKE = 0;
|
||||
EPHEMERAL_SETTING = 3;
|
||||
EPHEMERAL_SYNC_RESPONSE = 4;
|
||||
HISTORY_SYNC_NOTIFICATION = 5;
|
||||
}
|
||||
optional PROTOCOL_MESSAGE_TYPE type = 2;
|
||||
optional uint32 ephemeralExpiration = 4;
|
||||
optional int64 ephemeralSettingTimestamp = 5;
|
||||
optional HistorySyncNotification historySyncNotification = 6;
|
||||
}
|
||||
|
||||
message HistorySyncNotification {
|
||||
optional bytes fileSha256 = 1;
|
||||
optional uint64 fileLength = 2;
|
||||
optional bytes mediaKey = 3;
|
||||
optional bytes fileEncSha256 = 4;
|
||||
optional string directPath = 5;
|
||||
enum HISTORY_SYNC_NOTIFICATION_HISTORYSYNCTYPE {
|
||||
INITIAL_BOOTSTRAP = 0;
|
||||
INITIAL_STATUS_V3 = 1;
|
||||
FULL = 2;
|
||||
RECENT = 3;
|
||||
}
|
||||
optional HISTORY_SYNC_NOTIFICATION_HISTORYSYNCTYPE syncType = 6;
|
||||
optional uint32 chunkOrder = 7;
|
||||
}
|
||||
|
||||
message ContactsArrayMessage {
|
||||
@@ -355,6 +383,8 @@ message StickerMessage {
|
||||
optional int64 mediaKeyTimestamp = 10;
|
||||
optional uint32 firstFrameLength = 11;
|
||||
optional bytes firstFrameSidecar = 12;
|
||||
optional bool isAnimated = 13;
|
||||
optional bytes pngThumbnail = 16;
|
||||
optional ContextInfo contextInfo = 17;
|
||||
}
|
||||
|
||||
@@ -401,6 +431,12 @@ message TemplateButtonReplyMessage {
|
||||
optional uint32 selectedIndex = 4;
|
||||
}
|
||||
|
||||
message CatalogSnapshot {
|
||||
optional ImageMessage catalogImage = 1;
|
||||
optional string title = 2;
|
||||
optional string description = 3;
|
||||
}
|
||||
|
||||
message ProductSnapshot {
|
||||
optional ImageMessage productImage = 1;
|
||||
optional string productId = 2;
|
||||
@@ -417,6 +453,7 @@ message ProductSnapshot {
|
||||
message ProductMessage {
|
||||
optional ProductSnapshot product = 1;
|
||||
optional string businessOwnerJid = 2;
|
||||
optional CatalogSnapshot catalog = 4;
|
||||
optional ContextInfo contextInfo = 17;
|
||||
}
|
||||
|
||||
@@ -513,6 +550,8 @@ message WebFeatures {
|
||||
optional WEB_FEATURES_FLAG templateMessage = 30;
|
||||
optional WEB_FEATURES_FLAG templateMessageInteractivity = 31;
|
||||
optional WEB_FEATURES_FLAG ephemeralMessages = 32;
|
||||
optional WEB_FEATURES_FLAG e2ENotificationSync = 33;
|
||||
optional WEB_FEATURES_FLAG recentStickersV2 = 34;
|
||||
}
|
||||
|
||||
message TabletNotificationsInfo {
|
||||
@@ -537,6 +576,11 @@ message WebNotificationsInfo {
|
||||
}
|
||||
|
||||
message PaymentInfo {
|
||||
enum PAYMENT_INFO_CURRENCY {
|
||||
UNKNOWN_CURRENCY = 0;
|
||||
INR = 1;
|
||||
}
|
||||
optional PAYMENT_INFO_CURRENCY currencyDeprecated = 1;
|
||||
optional uint64 amount1000 = 2;
|
||||
optional string receiverJid = 3;
|
||||
enum PAYMENT_INFO_STATUS {
|
||||
@@ -559,6 +603,37 @@ message PaymentInfo {
|
||||
optional uint64 expiryTimestamp = 7;
|
||||
optional bool futureproofed = 8;
|
||||
optional string currency = 9;
|
||||
enum PAYMENT_INFO_TXNSTATUS {
|
||||
UNKNOWN = 0;
|
||||
PENDING_SETUP = 1;
|
||||
PENDING_RECEIVER_SETUP = 2;
|
||||
INIT = 3;
|
||||
SUCCESS = 4;
|
||||
COMPLETED = 5;
|
||||
FAILED = 6;
|
||||
FAILED_RISK = 7;
|
||||
FAILED_PROCESSING = 8;
|
||||
FAILED_RECEIVER_PROCESSING = 9;
|
||||
FAILED_DA = 10;
|
||||
FAILED_DA_FINAL = 11;
|
||||
REFUNDED_TXN = 12;
|
||||
REFUND_FAILED = 13;
|
||||
REFUND_FAILED_PROCESSING = 14;
|
||||
REFUND_FAILED_DA = 15;
|
||||
EXPIRED_TXN = 16;
|
||||
AUTH_CANCELED = 17;
|
||||
AUTH_CANCEL_FAILED_PROCESSING = 18;
|
||||
AUTH_CANCEL_FAILED = 19;
|
||||
COLLECT_INIT = 20;
|
||||
COLLECT_SUCCESS = 21;
|
||||
COLLECT_FAILED = 22;
|
||||
COLLECT_FAILED_RISK = 23;
|
||||
COLLECT_REJECTED = 24;
|
||||
COLLECT_EXPIRED = 25;
|
||||
COLLECT_CANCELED = 26;
|
||||
COLLECT_CANCELLING = 27;
|
||||
}
|
||||
optional PAYMENT_INFO_TXNSTATUS txnStatus = 10;
|
||||
}
|
||||
|
||||
message WebMessageInfo {
|
||||
@@ -668,4 +743,5 @@ message WebMessageInfo {
|
||||
optional PaymentInfo quotedPaymentInfo = 31;
|
||||
optional uint64 ephemeralStartTimestamp = 32;
|
||||
optional uint32 ephemeralDuration = 33;
|
||||
}
|
||||
}
|
||||
|
||||
|
2
vendor/github.com/Rhymen/go-whatsapp/go.mod
generated
vendored
2
vendor/github.com/Rhymen/go-whatsapp/go.mod
generated
vendored
@@ -6,7 +6,7 @@ require (
|
||||
github.com/Rhymen/go-whatsapp/examples/sendImage v0.0.0-20190325075644-cc2581bbf24d // indirect
|
||||
github.com/Rhymen/go-whatsapp/examples/sendTextMessages v0.0.0-20190325075644-cc2581bbf24d // indirect
|
||||
github.com/golang/protobuf v1.3.0
|
||||
github.com/gorilla/websocket v1.4.0
|
||||
github.com/gorilla/websocket v1.4.1
|
||||
github.com/pkg/errors v0.8.1
|
||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2
|
||||
)
|
||||
|
3
vendor/github.com/Rhymen/go-whatsapp/go.sum
generated
vendored
3
vendor/github.com/Rhymen/go-whatsapp/go.sum
generated
vendored
@@ -12,8 +12,9 @@ github.com/Rhymen/go-whatsapp/examples/sendTextMessages v0.0.0-20190325075644-cc
|
||||
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
||||
github.com/golang/protobuf v1.3.0 h1:kbxbvI4Un1LUWKxufD+BiE6AEExYYgkQLQmLFqA1LFk=
|
||||
github.com/golang/protobuf v1.3.0/go.mod h1:Qd/q+1AKNOZr9uGQzbzCmRO6sUih6GTPZv6a1/R87v0=
|
||||
github.com/gorilla/websocket v1.4.0 h1:WDFjx/TMzVgy9VdMMQi2K2Emtwi2QcUQsztZ/zLaH/Q=
|
||||
github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ=
|
||||
github.com/gorilla/websocket v1.4.1 h1:q7AeDBpnBk8AogcD4DSag/Ukw/KV+YhzLj2bP5HvKCM=
|
||||
github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
|
||||
github.com/mattn/go-colorable v0.1.1 h1:G1f5SKeVxmagw/IyvzvtZE4Gybcc4Tr1tf7I8z0XgOg=
|
||||
github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ=
|
||||
github.com/mattn/go-isatty v0.0.5 h1:tHXDdz1cpzGaovsTB+TVB8q90WEokoVmfMqoVcrLUgw=
|
||||
|
116
vendor/github.com/Rhymen/go-whatsapp/media.go
generated
vendored
116
vendor/github.com/Rhymen/go-whatsapp/media.go
generated
vendored
@@ -10,10 +10,8 @@ import (
|
||||
"fmt"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"mime/multipart"
|
||||
"net/http"
|
||||
"os"
|
||||
"strings"
|
||||
"net/url"
|
||||
"time"
|
||||
|
||||
"github.com/Rhymen/go-whatsapp/crypto/cbc"
|
||||
@@ -95,7 +93,50 @@ func downloadMedia(url string) (file []byte, mac []byte, err error) {
|
||||
return data[:n-10], data[n-10 : n], nil
|
||||
}
|
||||
|
||||
func (wac *Conn) Upload(reader io.Reader, appInfo MediaType) (url string, mediaKey []byte, fileEncSha256 []byte, fileSha256 []byte, fileLength uint64, err error) {
|
||||
type MediaConn struct {
|
||||
Status int `json:"status"`
|
||||
MediaConn struct {
|
||||
Auth string `json:"auth"`
|
||||
TTL int `json:"ttl"`
|
||||
Hosts []struct {
|
||||
Hostname string `json:"hostname"`
|
||||
IPs []string `json:"ips"`
|
||||
} `json:"hosts"`
|
||||
} `json:"media_conn"`
|
||||
}
|
||||
|
||||
func (wac *Conn) queryMediaConn() (hostname, auth string, ttl int, err error) {
|
||||
queryReq := []interface{}{"query", "mediaConn"}
|
||||
ch, err := wac.writeJson(queryReq)
|
||||
if err != nil {
|
||||
return "", "", 0, err
|
||||
}
|
||||
|
||||
var resp MediaConn
|
||||
select {
|
||||
case r := <-ch:
|
||||
if err = json.Unmarshal([]byte(r), &resp); err != nil {
|
||||
return "", "", 0, fmt.Errorf("error decoding query media conn response: %v", err)
|
||||
}
|
||||
case <-time.After(wac.msgTimeout):
|
||||
return "", "", 0, fmt.Errorf("query media conn timed out")
|
||||
}
|
||||
|
||||
if resp.Status != 200 {
|
||||
return "", "", 0, fmt.Errorf("query media conn responded with %d", resp.Status)
|
||||
}
|
||||
|
||||
return resp.MediaConn.Hosts[0].Hostname, resp.MediaConn.Auth, resp.MediaConn.TTL, nil
|
||||
}
|
||||
|
||||
var mediaTypeMap = map[MediaType]string{
|
||||
MediaImage: "/mms/image",
|
||||
MediaVideo: "/mms/video",
|
||||
MediaDocument: "/mms/document",
|
||||
MediaAudio: "/mms/audio",
|
||||
}
|
||||
|
||||
func (wac *Conn) Upload(reader io.Reader, appInfo MediaType) (downloadURL string, mediaKey []byte, fileEncSha256 []byte, fileSha256 []byte, fileLength uint64, err error) {
|
||||
data, err := ioutil.ReadAll(reader)
|
||||
if err != nil {
|
||||
return "", nil, nil, nil, 0, err
|
||||
@@ -128,67 +169,30 @@ func (wac *Conn) Upload(reader io.Reader, appInfo MediaType) (url string, mediaK
|
||||
sha.Write(append(enc, mac...))
|
||||
fileEncSha256 = sha.Sum(nil)
|
||||
|
||||
var filetype string
|
||||
switch appInfo {
|
||||
case MediaImage:
|
||||
filetype = "image"
|
||||
case MediaAudio:
|
||||
filetype = "audio"
|
||||
case MediaDocument:
|
||||
filetype = "document"
|
||||
case MediaVideo:
|
||||
filetype = "video"
|
||||
hostname, auth, _, err := wac.queryMediaConn()
|
||||
token := base64.URLEncoding.EncodeToString(fileEncSha256)
|
||||
q := url.Values{
|
||||
"auth": []string{auth},
|
||||
"token": []string{token},
|
||||
}
|
||||
path := mediaTypeMap[appInfo]
|
||||
uploadURL := url.URL{
|
||||
Scheme: "https",
|
||||
Host: hostname,
|
||||
Path: fmt.Sprintf("%s/%s", path, token),
|
||||
RawQuery: q.Encode(),
|
||||
}
|
||||
|
||||
uploadReq := []interface{}{"action", "encr_upload", filetype, base64.StdEncoding.EncodeToString(fileEncSha256)}
|
||||
ch, err := wac.writeJson(uploadReq)
|
||||
body := bytes.NewReader(append(enc, mac...))
|
||||
|
||||
req, err := http.NewRequest("POST", uploadURL.String(), body)
|
||||
if err != nil {
|
||||
return "", nil, nil, nil, 0, err
|
||||
}
|
||||
|
||||
var resp map[string]interface{}
|
||||
select {
|
||||
case r := <-ch:
|
||||
if err = json.Unmarshal([]byte(r), &resp); err != nil {
|
||||
return "", nil, nil, nil, 0, fmt.Errorf("error decoding upload response: %v", err)
|
||||
}
|
||||
case <-time.After(wac.msgTimeout):
|
||||
return "", nil, nil, nil, 0, fmt.Errorf("restore session init timed out")
|
||||
}
|
||||
|
||||
if int(resp["status"].(float64)) != 200 {
|
||||
return "", nil, nil, nil, 0, fmt.Errorf("upload responsed with %d", resp["status"])
|
||||
}
|
||||
|
||||
var b bytes.Buffer
|
||||
w := multipart.NewWriter(&b)
|
||||
hashWriter, err := w.CreateFormField("hash")
|
||||
if err != nil {
|
||||
fmt.Fprintf(os.Stderr, "%v\n", err)
|
||||
}
|
||||
io.Copy(hashWriter, strings.NewReader(base64.StdEncoding.EncodeToString(fileEncSha256)))
|
||||
|
||||
fileWriter, err := w.CreateFormFile("file", "blob")
|
||||
if err != nil {
|
||||
fmt.Fprintf(os.Stderr, "%v\n", err)
|
||||
}
|
||||
io.Copy(fileWriter, bytes.NewReader(append(enc, mac...)))
|
||||
err = w.Close()
|
||||
if err != nil {
|
||||
fmt.Fprintf(os.Stderr, "%v\n", err)
|
||||
}
|
||||
|
||||
req, err := http.NewRequest("POST", resp["url"].(string), &b)
|
||||
if err != nil {
|
||||
return "", nil, nil, nil, 0, err
|
||||
}
|
||||
|
||||
req.Header.Set("Content-Type", w.FormDataContentType())
|
||||
req.Header.Set("Origin", "https://web.whatsapp.com")
|
||||
req.Header.Set("Referer", "https://web.whatsapp.com/")
|
||||
|
||||
req.URL.Query().Set("f", "j")
|
||||
|
||||
client := &http.Client{}
|
||||
// Submit the request
|
||||
res, err := client.Do(req)
|
||||
|
6
vendor/github.com/Rhymen/go-whatsapp/read.go
generated
vendored
6
vendor/github.com/Rhymen/go-whatsapp/read.go
generated
vendored
@@ -15,7 +15,10 @@ import (
|
||||
)
|
||||
|
||||
func (wac *Conn) readPump() {
|
||||
defer wac.wg.Done()
|
||||
defer func() {
|
||||
wac.wg.Done()
|
||||
_, _ = wac.Disconnect()
|
||||
}()
|
||||
|
||||
var readErr error
|
||||
var msgType int
|
||||
@@ -31,7 +34,6 @@ func (wac *Conn) readPump() {
|
||||
case <-readerFound:
|
||||
if readErr != nil {
|
||||
wac.handle(&ErrConnectionFailed{Err: readErr})
|
||||
_, _ = wac.Disconnect()
|
||||
return
|
||||
}
|
||||
msg, err := ioutil.ReadAll(reader)
|
||||
|
8
vendor/github.com/Rhymen/go-whatsapp/session.go
generated
vendored
8
vendor/github.com/Rhymen/go-whatsapp/session.go
generated
vendored
@@ -18,7 +18,7 @@ import (
|
||||
)
|
||||
|
||||
//represents the WhatsAppWeb client version
|
||||
var waVersion = []int{0, 3, 3324}
|
||||
var waVersion = []int{0, 4, 2080}
|
||||
|
||||
/*
|
||||
Session contains session individual information. To be able to resume the connection without scanning the qr code
|
||||
@@ -110,7 +110,7 @@ func CheckCurrentServerVersion() ([]int, error) {
|
||||
login := []interface{}{"admin", "init", waVersion, []string{wac.longClientName, wac.shortClientName}, b64ClientId, true}
|
||||
loginChan, err := wac.writeJson(login)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("error writing login", err)
|
||||
return nil, fmt.Errorf("error writing login: %s", err.Error())
|
||||
}
|
||||
|
||||
// Retrieve an answer from the websocket
|
||||
@@ -123,7 +123,7 @@ func CheckCurrentServerVersion() ([]int, error) {
|
||||
|
||||
var resp map[string]interface{}
|
||||
if err = json.Unmarshal([]byte(r), &resp); err != nil {
|
||||
return nil, fmt.Errorf("error decoding login", err)
|
||||
return nil, fmt.Errorf("error decoding login: %s", err.Error())
|
||||
}
|
||||
|
||||
// Take the curr property as X.Y.Z and split it into as int slice
|
||||
@@ -151,7 +151,7 @@ func (wac *Conn) SetClientName(long, short string) error {
|
||||
|
||||
/*
|
||||
SetClientVersion sets WhatsApp client version
|
||||
Default value is 0.3.3324
|
||||
Default value is 0.4.2080
|
||||
*/
|
||||
func (wac *Conn) SetClientVersion(major int, minor int, patch int) {
|
||||
waVersion = []int{major, minor, patch}
|
||||
|
7
vendor/github.com/d5/tengo/v2/.goreleaser.yml
generated
vendored
7
vendor/github.com/d5/tengo/v2/.goreleaser.yml
generated
vendored
@@ -11,9 +11,10 @@ builds:
|
||||
- darwin
|
||||
- linux
|
||||
- windows
|
||||
archive:
|
||||
files:
|
||||
- none*
|
||||
archives:
|
||||
-
|
||||
files:
|
||||
- none*
|
||||
checksum:
|
||||
name_template: 'checksums.txt'
|
||||
changelog:
|
||||
|
5
vendor/github.com/d5/tengo/v2/README.md
generated
vendored
5
vendor/github.com/d5/tengo/v2/README.md
generated
vendored
@@ -7,7 +7,6 @@
|
||||
[](https://godoc.org/github.com/d5/tengo)
|
||||
[](https://goreportcard.com/report/github.com/d5/tengo)
|
||||
[](https://circleci.com/gh/d5/tengo)
|
||||
[](https://sourcegraph.com/github.com/d5/tengo?badge)
|
||||
|
||||
**Tengo is a small, dynamic, fast, secure script language for Go.**
|
||||
|
||||
@@ -75,6 +74,10 @@ _* See [here](https://github.com/d5/tengobench) for commands/codes used_
|
||||
|
||||
## Quick Start
|
||||
|
||||
```
|
||||
go get github.com/d5/tengo/v2
|
||||
```
|
||||
|
||||
A simple Go example code that compiles/runs Tengo script code with some input/output values:
|
||||
|
||||
```golang
|
||||
|
109
vendor/github.com/d5/tengo/v2/builtins.go
generated
vendored
109
vendor/github.com/d5/tengo/v2/builtins.go
generated
vendored
@@ -13,6 +13,14 @@ var builtinFuncs = []*BuiltinFunction{
|
||||
Name: "append",
|
||||
Value: builtinAppend,
|
||||
},
|
||||
{
|
||||
Name: "delete",
|
||||
Value: builtinDelete,
|
||||
},
|
||||
{
|
||||
Name: "splice",
|
||||
Value: builtinSplice,
|
||||
},
|
||||
{
|
||||
Name: "string",
|
||||
Value: builtinString,
|
||||
@@ -500,3 +508,104 @@ func builtinAppend(args ...Object) (Object, error) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// builtinDelete deletes Map keys
|
||||
// usage: delete(map, "key")
|
||||
// key must be a string
|
||||
func builtinDelete(args ...Object) (Object, error) {
|
||||
argsLen := len(args)
|
||||
if argsLen != 2 {
|
||||
return nil, ErrWrongNumArguments
|
||||
}
|
||||
switch arg := args[0].(type) {
|
||||
case *Map:
|
||||
if key, ok := args[1].(*String); ok {
|
||||
delete(arg.Value, key.Value)
|
||||
return UndefinedValue, nil
|
||||
}
|
||||
return nil, ErrInvalidArgumentType{
|
||||
Name: "second",
|
||||
Expected: "string",
|
||||
Found: args[1].TypeName(),
|
||||
}
|
||||
default:
|
||||
return nil, ErrInvalidArgumentType{
|
||||
Name: "first",
|
||||
Expected: "map",
|
||||
Found: arg.TypeName(),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// builtinSplice deletes and changes given Array, returns deleted items.
|
||||
// usage:
|
||||
// deleted_items := splice(array[,start[,delete_count[,item1[,item2[,...]]]])
|
||||
func builtinSplice(args ...Object) (Object, error) {
|
||||
argsLen := len(args)
|
||||
if argsLen == 0 {
|
||||
return nil, ErrWrongNumArguments
|
||||
}
|
||||
|
||||
array, ok := args[0].(*Array)
|
||||
if !ok {
|
||||
return nil, ErrInvalidArgumentType{
|
||||
Name: "first",
|
||||
Expected: "array",
|
||||
Found: args[0].TypeName(),
|
||||
}
|
||||
}
|
||||
arrayLen := len(array.Value)
|
||||
|
||||
var startIdx int
|
||||
if argsLen > 1 {
|
||||
arg1, ok := args[1].(*Int)
|
||||
if !ok {
|
||||
return nil, ErrInvalidArgumentType{
|
||||
Name: "second",
|
||||
Expected: "int",
|
||||
Found: args[1].TypeName(),
|
||||
}
|
||||
}
|
||||
startIdx = int(arg1.Value)
|
||||
if startIdx < 0 || startIdx > arrayLen {
|
||||
return nil, ErrIndexOutOfBounds
|
||||
}
|
||||
}
|
||||
|
||||
delCount := len(array.Value)
|
||||
if argsLen > 2 {
|
||||
arg2, ok := args[2].(*Int)
|
||||
if !ok {
|
||||
return nil, ErrInvalidArgumentType{
|
||||
Name: "third",
|
||||
Expected: "int",
|
||||
Found: args[2].TypeName(),
|
||||
}
|
||||
}
|
||||
delCount = int(arg2.Value)
|
||||
if delCount < 0 {
|
||||
return nil, ErrIndexOutOfBounds
|
||||
}
|
||||
}
|
||||
// if count of to be deleted items is bigger than expected, truncate it
|
||||
if startIdx+delCount > arrayLen {
|
||||
delCount = arrayLen - startIdx
|
||||
}
|
||||
// delete items
|
||||
endIdx := startIdx + delCount
|
||||
deleted := append([]Object{}, array.Value[startIdx:endIdx]...)
|
||||
|
||||
head := array.Value[:startIdx]
|
||||
var items []Object
|
||||
if argsLen > 3 {
|
||||
items = make([]Object, 0, argsLen-3)
|
||||
for i := 3; i < argsLen; i++ {
|
||||
items = append(items, args[i])
|
||||
}
|
||||
}
|
||||
items = append(items, array.Value[endIdx:]...)
|
||||
array.Value = append(head, items...)
|
||||
|
||||
// return deleted items
|
||||
return &Array{Value: deleted}, nil
|
||||
}
|
||||
|
6
vendor/github.com/d5/tengo/v2/vm.go
generated
vendored
6
vendor/github.com/d5/tengo/v2/vm.go
generated
vendored
@@ -80,14 +80,14 @@ func (v *VM) Run() (err error) {
|
||||
if err != nil {
|
||||
filePos := v.fileSet.Position(
|
||||
v.curFrame.fn.SourcePos(v.ip - 1))
|
||||
err = fmt.Errorf("Runtime Error: %s\n\tat %s",
|
||||
err.Error(), filePos)
|
||||
err = fmt.Errorf("Runtime Error: %w\n\tat %s",
|
||||
err, filePos)
|
||||
for v.framesIndex > 1 {
|
||||
v.framesIndex--
|
||||
v.curFrame = &v.frames[v.framesIndex-1]
|
||||
filePos = v.fileSet.Position(
|
||||
v.curFrame.fn.SourcePos(v.curFrame.ip - 1))
|
||||
err = fmt.Errorf("%s\n\tat %s", err.Error(), filePos)
|
||||
err = fmt.Errorf("%w\n\tat %s", err, filePos)
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
4
vendor/github.com/matterbridge/Rocket.Chat.Go.SDK/models/message.go
generated
vendored
4
vendor/github.com/matterbridge/Rocket.Chat.Go.SDK/models/message.go
generated
vendored
@@ -7,6 +7,7 @@ type Message struct {
|
||||
RoomID string `json:"rid"`
|
||||
Msg string `json:"msg"`
|
||||
EditedBy string `json:"editedBy,omitempty"`
|
||||
Type string `json:"t,omitempty"`
|
||||
|
||||
Groupable bool `json:"groupable,omitempty"`
|
||||
|
||||
@@ -16,6 +17,9 @@ type Message struct {
|
||||
|
||||
Mentions []User `json:"mentions,omitempty"`
|
||||
User *User `json:"u,omitempty"`
|
||||
|
||||
Attachments []Attachment `json:"attachments,omitempty"`
|
||||
|
||||
PostMessage
|
||||
|
||||
// Bot interface{} `json:"bot"`
|
||||
|
22
vendor/github.com/matterbridge/Rocket.Chat.Go.SDK/realtime/messages.go
generated
vendored
22
vendor/github.com/matterbridge/Rocket.Chat.Go.SDK/realtime/messages.go
generated
vendored
@@ -191,6 +191,26 @@ func getMessageFromData(data interface{}) *models.Message {
|
||||
|
||||
func getMessageFromDocument(arg *gabs.Container) *models.Message {
|
||||
var ts *time.Time
|
||||
var attachments []models.Attachment
|
||||
|
||||
attachmentSrc, err := arg.Path("attachments").Children()
|
||||
if err != nil {
|
||||
attachments = make([]models.Attachment, 0)
|
||||
} else {
|
||||
attachments = make([]models.Attachment, len(attachmentSrc))
|
||||
for i, attachment := range attachmentSrc {
|
||||
attachments[i] = models.Attachment{
|
||||
Timestamp: stringOrZero(attachment.Path("ts").Data()),
|
||||
Title: stringOrZero(attachment.Path("title").Data()),
|
||||
TitleLink: stringOrZero(attachment.Path("title_link").Data()),
|
||||
TitleLinkDownload: stringOrZero(attachment.Path("title_link_download").Data()),
|
||||
ImageURL: stringOrZero(attachment.Path("image_url").Data()),
|
||||
|
||||
AuthorName: stringOrZero(arg.Path("u.name").Data()),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
date := stringOrZero(arg.Path("ts.$date").Data())
|
||||
if len(date) > 0 {
|
||||
if ti, err := strconv.ParseFloat(date, 64); err == nil {
|
||||
@@ -202,11 +222,13 @@ func getMessageFromDocument(arg *gabs.Container) *models.Message {
|
||||
ID: stringOrZero(arg.Path("_id").Data()),
|
||||
RoomID: stringOrZero(arg.Path("rid").Data()),
|
||||
Msg: stringOrZero(arg.Path("msg").Data()),
|
||||
Type: stringOrZero(arg.Path("t").Data()),
|
||||
Timestamp: ts,
|
||||
User: &models.User{
|
||||
ID: stringOrZero(arg.Path("u._id").Data()),
|
||||
UserName: stringOrZero(arg.Path("u.username").Data()),
|
||||
},
|
||||
Attachments: attachments,
|
||||
}
|
||||
}
|
||||
|
||||
|
271
vendor/github.com/matterbridge/go-xmpp/xmpp.go
generated
vendored
271
vendor/github.com/matterbridge/go-xmpp/xmpp.go
generated
vendored
@@ -1,4 +1,4 @@
|
||||
// Copyright 2011 The Go Authors. All rights reserved.
|
||||
// Copyright 2011 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
@@ -45,6 +45,9 @@ const (
|
||||
// Default TLS configuration options
|
||||
var DefaultConfig tls.Config
|
||||
|
||||
// DebugWriter is the writer used to write debugging output to.
|
||||
var DebugWriter io.Writer = os.Stderr
|
||||
|
||||
// Cookie is a unique XMPP session identifier
|
||||
type Cookie uint64
|
||||
|
||||
@@ -191,21 +194,40 @@ type Options struct {
|
||||
|
||||
// Status message
|
||||
StatusMessage string
|
||||
|
||||
// Logger
|
||||
Logger io.Writer
|
||||
}
|
||||
|
||||
// NewClient establishes a new Client connection based on a set of Options.
|
||||
func (o Options) NewClient() (*Client, error) {
|
||||
host := o.Host
|
||||
if strings.TrimSpace(host) == "" {
|
||||
a := strings.SplitN(o.User, "@", 2)
|
||||
if len(a) == 2 {
|
||||
if _, addrs, err := net.LookupSRV("xmpp-client", "tcp", a[1]); err == nil {
|
||||
if len(addrs) > 0 {
|
||||
// default to first record
|
||||
host = fmt.Sprintf("%s:%d", addrs[0].Target, addrs[0].Port)
|
||||
defP := addrs[0].Priority
|
||||
for _, adr := range addrs {
|
||||
if adr.Priority < defP {
|
||||
host = fmt.Sprintf("%s:%d", adr.Target, adr.Port)
|
||||
defP = adr.Priority
|
||||
}
|
||||
}
|
||||
} else {
|
||||
host = a[1]
|
||||
}
|
||||
} else {
|
||||
host = a[1]
|
||||
}
|
||||
}
|
||||
}
|
||||
c, err := connect(host, o.User, o.Password)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if strings.LastIndex(o.Host, ":") > 0 {
|
||||
host = host[:strings.LastIndex(o.Host, ":")]
|
||||
if strings.LastIndex(host, ":") > 0 {
|
||||
host = host[:strings.LastIndex(host, ":")]
|
||||
}
|
||||
|
||||
client := new(Client)
|
||||
@@ -487,6 +509,8 @@ func (c *Client) startTLSIfRequired(f *streamFeatures, o *Options, domain string
|
||||
case f.StartTLS == nil:
|
||||
// the server does not support STARTTLS
|
||||
return f, nil
|
||||
case !o.StartTLS && f.StartTLS.Required == nil:
|
||||
return f, nil
|
||||
case f.StartTLS.Required != nil:
|
||||
// the server requires STARTTLS.
|
||||
case !o.StartTLS:
|
||||
@@ -527,7 +551,7 @@ func (c *Client) startTLSIfRequired(f *streamFeatures, o *Options, domain string
|
||||
// will be returned.
|
||||
func (c *Client) startStream(o *Options, domain string) (*streamFeatures, error) {
|
||||
if o.Debug {
|
||||
c.p = xml.NewDecoder(tee{c.conn, o.Logger})
|
||||
c.p = xml.NewDecoder(tee{c.conn, DebugWriter})
|
||||
} else {
|
||||
c.p = xml.NewDecoder(c.conn)
|
||||
}
|
||||
@@ -618,6 +642,24 @@ func (c *Client) Recv() (stanza interface{}, err error) {
|
||||
}
|
||||
switch v := val.(type) {
|
||||
case *clientMessage:
|
||||
if v.Event.XMLNS == XMPPNS_PUBSUB_EVENT {
|
||||
// Handle Pubsub notifications
|
||||
switch v.Event.Items.Node {
|
||||
case XMPPNS_AVATAR_PEP_METADATA:
|
||||
return handleAvatarMetadata(v.Event.Items.Items[0].Body,
|
||||
v.From)
|
||||
// I am not sure whether this can even happen.
|
||||
// XEP-0084 only specifies a subscription to
|
||||
// the metadata node.
|
||||
/*case XMPPNS_AVATAR_PEP_DATA:
|
||||
return handleAvatarData(v.Event.Items.Items[0].Body,
|
||||
v.From,
|
||||
v.Event.Items.Items[0].ID)*/
|
||||
default:
|
||||
return pubsubClientToReturn(v.Event), nil
|
||||
}
|
||||
}
|
||||
|
||||
stamp, _ := time.Parse(
|
||||
"2006-01-02T15:04:05Z",
|
||||
v.Delay.Stamp,
|
||||
@@ -644,25 +686,166 @@ func (c *Client) Recv() (stanza interface{}, err error) {
|
||||
case *clientPresence:
|
||||
return Presence{v.From, v.To, v.Type, v.Show, v.Status}, nil
|
||||
case *clientIQ:
|
||||
// TODO check more strictly
|
||||
if bytes.Equal(bytes.TrimSpace(v.Query), []byte(`<ping xmlns='urn:xmpp:ping'/>`)) || bytes.Equal(bytes.TrimSpace(v.Query), []byte(`<ping xmlns="urn:xmpp:ping"/>`)) {
|
||||
switch {
|
||||
case v.Query.XMLName.Space == "urn:xmpp:ping":
|
||||
// TODO check more strictly
|
||||
err := c.SendResultPing(v.ID, v.From)
|
||||
if err != nil {
|
||||
return Chat{}, err
|
||||
}
|
||||
fallthrough
|
||||
case v.Type == "error":
|
||||
switch v.ID {
|
||||
case "sub1":
|
||||
// Pubsub subscription failed
|
||||
var errs []clientPubsubError
|
||||
err := xml.Unmarshal([]byte(v.Error.InnerXML), &errs)
|
||||
if err != nil {
|
||||
return PubsubSubscription{}, err
|
||||
}
|
||||
|
||||
var errsStr []string
|
||||
for _, e := range errs {
|
||||
errsStr = append(errsStr, e.XMLName.Local)
|
||||
}
|
||||
|
||||
return PubsubSubscription{
|
||||
Errors: errsStr,
|
||||
}, nil
|
||||
}
|
||||
case v.Type == "result":
|
||||
switch v.ID {
|
||||
case "sub1":
|
||||
if v.Query.XMLName.Local == "pubsub" {
|
||||
// Subscription or unsubscription was successful
|
||||
var sub clientPubsubSubscription
|
||||
err := xml.Unmarshal([]byte(v.Query.InnerXML), &sub)
|
||||
if err != nil {
|
||||
return PubsubSubscription{}, err
|
||||
}
|
||||
|
||||
return PubsubSubscription{
|
||||
SubID: sub.SubID,
|
||||
JID: sub.JID,
|
||||
Node: sub.Node,
|
||||
Errors: nil,
|
||||
}, nil
|
||||
}
|
||||
case "unsub1":
|
||||
if v.Query.XMLName.Local == "pubsub" {
|
||||
var sub clientPubsubSubscription
|
||||
err := xml.Unmarshal([]byte(v.Query.InnerXML), &sub)
|
||||
if err != nil {
|
||||
return PubsubUnsubscription{}, err
|
||||
}
|
||||
|
||||
return PubsubUnsubscription{
|
||||
SubID: sub.SubID,
|
||||
JID: v.From,
|
||||
Node: sub.Node,
|
||||
Errors: nil,
|
||||
}, nil
|
||||
} else {
|
||||
// Unsubscribing MAY contain a pubsub element. But it does
|
||||
// not have to
|
||||
return PubsubUnsubscription{
|
||||
SubID: "",
|
||||
JID: v.From,
|
||||
Node: "",
|
||||
Errors: nil,
|
||||
}, nil
|
||||
}
|
||||
case "info1":
|
||||
if v.Query.XMLName.Space == XMPPNS_DISCO_ITEMS {
|
||||
var itemsQuery clientDiscoItemsQuery
|
||||
err := xml.Unmarshal(v.InnerXML, &itemsQuery)
|
||||
if err != nil {
|
||||
return []DiscoItem{}, err
|
||||
}
|
||||
|
||||
return DiscoItems{
|
||||
Jid: v.From,
|
||||
Items: clientDiscoItemsToReturn(itemsQuery.Items),
|
||||
}, nil
|
||||
}
|
||||
case "info3":
|
||||
if v.Query.XMLName.Space == XMPPNS_DISCO_INFO {
|
||||
var disco clientDiscoQuery
|
||||
err := xml.Unmarshal(v.InnerXML, &disco)
|
||||
if err != nil {
|
||||
return DiscoResult{}, err
|
||||
}
|
||||
|
||||
return DiscoResult{
|
||||
Features: clientFeaturesToReturn(disco.Features),
|
||||
Identities: clientIdentitiesToReturn(disco.Identities),
|
||||
}, nil
|
||||
}
|
||||
case "items1", "items3":
|
||||
if v.Query.XMLName.Local == "pubsub" {
|
||||
var p clientPubsubItems
|
||||
err := xml.Unmarshal([]byte(v.Query.InnerXML), &p)
|
||||
if err != nil {
|
||||
return PubsubItems{}, err
|
||||
}
|
||||
|
||||
switch p.Node {
|
||||
case XMPPNS_AVATAR_PEP_DATA:
|
||||
return handleAvatarData(p.Items[0].Body,
|
||||
v.From,
|
||||
p.Items[0].ID)
|
||||
case XMPPNS_AVATAR_PEP_METADATA:
|
||||
return handleAvatarMetadata(p.Items[0].Body,
|
||||
v.From)
|
||||
default:
|
||||
return PubsubItems{
|
||||
p.Node,
|
||||
pubsubItemsToReturn(p.Items),
|
||||
}, nil
|
||||
}
|
||||
}
|
||||
// Note: XEP-0084 states that metadata and data
|
||||
// should be fetched with an id of retrieve1.
|
||||
// Since we already have PubSub implemented, we
|
||||
// can just use items1 and items3 to do the same
|
||||
// as an Avatar node is just a PEP (PubSub) node.
|
||||
/*case "retrieve1":
|
||||
if v.Query.XMLName.Local == "pubsub" {
|
||||
var p clientPubsubItems
|
||||
err := xml.Unmarshal([]byte(v.Query.InnerXML), &p)
|
||||
if err != nil {
|
||||
return PubsubItems{}, err
|
||||
}
|
||||
|
||||
switch p.Node {
|
||||
case XMPPNS_AVATAR_PEP_DATA:
|
||||
return handleAvatarData(p.Items[0].Body,
|
||||
v.From,
|
||||
p.Items[0].ID)
|
||||
case XMPPNS_AVATAR_PEP_METADATA:
|
||||
return handleAvatarMetadata(p.Items[0].Body,
|
||||
v.From)
|
||||
}
|
||||
}*/
|
||||
}
|
||||
case v.Query.XMLName.Local == "":
|
||||
return IQ{ID: v.ID, From: v.From, To: v.To, Type: v.Type}, nil
|
||||
default:
|
||||
res, err := xml.Marshal(v.Query)
|
||||
if err != nil {
|
||||
return Chat{}, err
|
||||
}
|
||||
|
||||
return IQ{ID: v.ID, From: v.From, To: v.To, Type: v.Type,
|
||||
Query: res}, nil
|
||||
}
|
||||
return IQ{ID: v.ID, From: v.From, To: v.To, Type: v.Type, Query: v.Query}, nil
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Send sends the message wrapped inside an XMPP message stanza body.
|
||||
func (c *Client) Send(chat Chat) (n int, err error) {
|
||||
var subtext = ``
|
||||
var thdtext = ``
|
||||
var oobtext = ``
|
||||
var msgidtext = ``
|
||||
var msgcorrecttext = ``
|
||||
var subtext, thdtext, oobtext, msgidtext, msgcorrecttext string
|
||||
if chat.Subject != `` {
|
||||
subtext = `<subject>` + xmlEscape(chat.Subject) + `</subject>`
|
||||
}
|
||||
@@ -676,20 +859,25 @@ func (c *Client) Send(chat Chat) (n int, err error) {
|
||||
}
|
||||
oobtext += `</x>`
|
||||
}
|
||||
|
||||
if chat.ID != `` {
|
||||
msgidtext = `id='` + xmlEscape(chat.ID) + `'`
|
||||
} else {
|
||||
msgidtext = `id='` + cnonce() + `'`
|
||||
}
|
||||
|
||||
if chat.ReplaceID != `` {
|
||||
msgcorrecttext = `<replace id='` + xmlEscape(chat.ReplaceID) + `' xmlns='urn:xmpp:message-correct:0'/>`
|
||||
}
|
||||
return fmt.Fprintf(c.conn, "<message to='%s' type='%s' " + msgidtext + " xml:lang='en'>" + subtext + "<body>%s</body>" + msgcorrecttext + oobtext + thdtext + "</message>",
|
||||
xmlEscape(chat.Remote), xmlEscape(chat.Type), xmlEscape(chat.Text))
|
||||
|
||||
stanza := "<message to='%s' type='%s' " + msgidtext + " xml:lang='en'>" + subtext + "<body>%s</body>" + msgcorrecttext + oobtext + thdtext + "</message>"
|
||||
|
||||
return fmt.Fprintf(c.conn, stanza, xmlEscape(chat.Remote), xmlEscape(chat.Type), xmlEscape(chat.Text))
|
||||
}
|
||||
|
||||
// SendOOB sends OOB data wrapped inside an XMPP message stanza, without actual body.
|
||||
func (c *Client) SendOOB(chat Chat) (n int, err error) {
|
||||
var thdtext = ``
|
||||
var oobtext = ``
|
||||
var thdtext, oobtext string
|
||||
if chat.Thread != `` {
|
||||
thdtext = `<thread>` + xmlEscape(chat.Thread) + `</thread>`
|
||||
}
|
||||
@@ -700,8 +888,8 @@ func (c *Client) SendOOB(chat Chat) (n int, err error) {
|
||||
}
|
||||
oobtext += `</x>`
|
||||
}
|
||||
return fmt.Fprintf(c.conn, "<message to='%s' type='%s' xml:lang='en'>" + oobtext + thdtext + "</message>",
|
||||
xmlEscape(chat.Remote), xmlEscape(chat.Type))
|
||||
return fmt.Fprintf(c.conn, "<message to='%s' type='%s' id='%s' xml:lang='en'>"+oobtext+thdtext+"</message>",
|
||||
xmlEscape(chat.Remote), xmlEscape(chat.Type), cnonce())
|
||||
}
|
||||
|
||||
// SendOrg sends the original text without being wrapped in an XMPP message stanza.
|
||||
@@ -800,8 +988,8 @@ type bindBind struct {
|
||||
}
|
||||
|
||||
type clientMessageCorrect struct {
|
||||
XMLName xml.Name `xml:"urn:xmpp:message-correct:0 replace"`
|
||||
ID string `xml:"id,attr"`
|
||||
XMLName xml.Name `xml:"urn:xmpp:message-correct:0 replace"`
|
||||
ID string `xml:"id,attr"`
|
||||
}
|
||||
|
||||
// RFC 3921 B.1 jabber:client
|
||||
@@ -813,11 +1001,14 @@ type clientMessage struct {
|
||||
Type string `xml:"type,attr"` // chat, error, groupchat, headline, or normal
|
||||
|
||||
// These should technically be []clientText, but string is much more convenient.
|
||||
Subject string `xml:"subject"`
|
||||
Body string `xml:"body"`
|
||||
Thread string `xml:"thread"`
|
||||
Subject string `xml:"subject"`
|
||||
Body string `xml:"body"`
|
||||
Thread string `xml:"thread"`
|
||||
ReplaceID clientMessageCorrect
|
||||
|
||||
// Pubsub
|
||||
Event clientPubsubEvent `xml:"event"`
|
||||
|
||||
// Any hasn't matched element
|
||||
Other []XMLElement `xml:",any"`
|
||||
|
||||
@@ -882,23 +1073,27 @@ type clientPresence struct {
|
||||
Error *clientError
|
||||
}
|
||||
|
||||
type clientIQ struct { // info/query
|
||||
XMLName xml.Name `xml:"jabber:client iq"`
|
||||
From string `xml:"from,attr"`
|
||||
ID string `xml:"id,attr"`
|
||||
To string `xml:"to,attr"`
|
||||
Type string `xml:"type,attr"` // error, get, result, set
|
||||
Query []byte `xml:",innerxml"`
|
||||
type clientIQ struct {
|
||||
// info/query
|
||||
XMLName xml.Name `xml:"jabber:client iq"`
|
||||
From string `xml:"from,attr"`
|
||||
ID string `xml:"id,attr"`
|
||||
To string `xml:"to,attr"`
|
||||
Type string `xml:"type,attr"` // error, get, result, set
|
||||
Query XMLElement `xml:",any"`
|
||||
Error clientError
|
||||
Bind bindBind
|
||||
|
||||
InnerXML []byte `xml:",innerxml"`
|
||||
}
|
||||
|
||||
type clientError struct {
|
||||
XMLName xml.Name `xml:"jabber:client error"`
|
||||
Code string `xml:",attr"`
|
||||
Type string `xml:",attr"`
|
||||
Any xml.Name
|
||||
Text string
|
||||
XMLName xml.Name `xml:"jabber:client error"`
|
||||
Code string `xml:",attr"`
|
||||
Type string `xml:"type,attr"`
|
||||
Any xml.Name
|
||||
InnerXML []byte `xml:",innerxml"`
|
||||
Text string
|
||||
}
|
||||
|
||||
type clientQuery struct {
|
||||
|
125
vendor/github.com/matterbridge/go-xmpp/xmpp_avatar.go
generated
vendored
Normal file
125
vendor/github.com/matterbridge/go-xmpp/xmpp_avatar.go
generated
vendored
Normal file
@@ -0,0 +1,125 @@
|
||||
package xmpp
|
||||
|
||||
import (
|
||||
"crypto/sha1"
|
||||
"encoding/base64"
|
||||
"encoding/hex"
|
||||
"encoding/xml"
|
||||
"errors"
|
||||
"strconv"
|
||||
)
|
||||
|
||||
const (
|
||||
XMPPNS_AVATAR_PEP_DATA = "urn:xmpp:avatar:data"
|
||||
XMPPNS_AVATAR_PEP_METADATA = "urn:xmpp:avatar:metadata"
|
||||
)
|
||||
|
||||
type clientAvatarData struct {
|
||||
XMLName xml.Name `xml:"data"`
|
||||
Data []byte `xml:",innerxml"`
|
||||
}
|
||||
|
||||
type clientAvatarInfo struct {
|
||||
XMLName xml.Name `xml:"info"`
|
||||
Bytes string `xml:"bytes,attr"`
|
||||
Width string `xml:"width,attr"`
|
||||
Height string `xml:"height,attr"`
|
||||
ID string `xml:"id,attr"`
|
||||
Type string `xml:"type,attr"`
|
||||
URL string `xml:"url,attr"`
|
||||
}
|
||||
|
||||
type clientAvatarMetadata struct {
|
||||
XMLName xml.Name `xml:"metadata"`
|
||||
XMLNS string `xml:"xmlns,attr"`
|
||||
Info clientAvatarInfo `xml:"info"`
|
||||
}
|
||||
|
||||
type AvatarData struct {
|
||||
Data []byte
|
||||
From string
|
||||
}
|
||||
|
||||
type AvatarMetadata struct {
|
||||
From string
|
||||
Bytes int
|
||||
Width int
|
||||
Height int
|
||||
ID string
|
||||
Type string
|
||||
URL string
|
||||
}
|
||||
|
||||
func handleAvatarData(itemsBody []byte, from, id string) (AvatarData, error) {
|
||||
var data clientAvatarData
|
||||
err := xml.Unmarshal(itemsBody, &data)
|
||||
if err != nil {
|
||||
return AvatarData{}, err
|
||||
}
|
||||
|
||||
// Base64-decode the avatar data to check its SHA1 hash
|
||||
dataRaw, err := base64.StdEncoding.DecodeString(
|
||||
string(data.Data))
|
||||
if err != nil {
|
||||
return AvatarData{}, err
|
||||
}
|
||||
|
||||
hash := sha1.Sum(dataRaw)
|
||||
hashStr := hex.EncodeToString(hash[:])
|
||||
if hashStr != id {
|
||||
return AvatarData{}, errors.New("SHA1 hashes do not match")
|
||||
}
|
||||
|
||||
return AvatarData{
|
||||
Data: dataRaw,
|
||||
From: from,
|
||||
}, nil
|
||||
}
|
||||
|
||||
func handleAvatarMetadata(body []byte, from string) (AvatarMetadata, error) {
|
||||
var meta clientAvatarMetadata
|
||||
err := xml.Unmarshal(body, &meta)
|
||||
if err != nil {
|
||||
return AvatarMetadata{}, err
|
||||
}
|
||||
|
||||
return AvatarMetadata{
|
||||
From: from,
|
||||
Bytes: atoiw(meta.Info.Bytes),
|
||||
Width: atoiw(meta.Info.Width),
|
||||
Height: atoiw(meta.Info.Height),
|
||||
ID: meta.Info.ID,
|
||||
Type: meta.Info.Type,
|
||||
URL: meta.Info.URL,
|
||||
}, nil
|
||||
}
|
||||
|
||||
// A wrapper for atoi which just returns -1 if an error occurs
|
||||
func atoiw(str string) int {
|
||||
i, err := strconv.Atoi(str)
|
||||
if err != nil {
|
||||
return -1
|
||||
}
|
||||
|
||||
return i
|
||||
}
|
||||
|
||||
func (c *Client) AvatarSubscribeMetadata(jid string) {
|
||||
c.PubsubSubscribeNode(XMPPNS_AVATAR_PEP_METADATA, jid)
|
||||
}
|
||||
|
||||
func (c *Client) AvatarUnsubscribeMetadata(jid string) {
|
||||
c.PubsubUnsubscribeNode(XMPPNS_AVATAR_PEP_METADATA, jid)
|
||||
}
|
||||
|
||||
func (c *Client) AvatarRequestData(jid string) {
|
||||
c.PubsubRequestLastItems(XMPPNS_AVATAR_PEP_DATA, jid)
|
||||
}
|
||||
|
||||
func (c *Client) AvatarRequestDataByID(jid, id string) {
|
||||
c.PubsubRequestItem(XMPPNS_AVATAR_PEP_DATA, jid, id)
|
||||
}
|
||||
|
||||
func (c *Client) AvatarRequestMetadata(jid string) {
|
||||
c.PubsubRequestLastItems(XMPPNS_AVATAR_PEP_METADATA, jid)
|
||||
}
|
99
vendor/github.com/matterbridge/go-xmpp/xmpp_disco.go
generated
vendored
Normal file
99
vendor/github.com/matterbridge/go-xmpp/xmpp_disco.go
generated
vendored
Normal file
@@ -0,0 +1,99 @@
|
||||
package xmpp
|
||||
|
||||
import (
|
||||
"encoding/xml"
|
||||
)
|
||||
|
||||
const (
|
||||
XMPPNS_DISCO_ITEMS = "http://jabber.org/protocol/disco#items"
|
||||
XMPPNS_DISCO_INFO = "http://jabber.org/protocol/disco#info"
|
||||
)
|
||||
|
||||
type clientDiscoFeature struct {
|
||||
XMLName xml.Name `xml:"feature"`
|
||||
Var string `xml:"var,attr"`
|
||||
}
|
||||
|
||||
type clientDiscoIdentity struct {
|
||||
XMLName xml.Name `xml:"identity"`
|
||||
Category string `xml:"category,attr"`
|
||||
Type string `xml:"type,attr"`
|
||||
Name string `xml:"name,attr"`
|
||||
}
|
||||
|
||||
type clientDiscoQuery struct {
|
||||
XMLName xml.Name `xml:"query"`
|
||||
Features []clientDiscoFeature `xml:"feature"`
|
||||
Identities []clientDiscoIdentity `xml:"identity"`
|
||||
}
|
||||
|
||||
type clientDiscoItem struct {
|
||||
XMLName xml.Name `xml:"item"`
|
||||
Jid string `xml:"jid,attr"`
|
||||
Node string `xml:"node,attr"`
|
||||
Name string `xml:"name,attr"`
|
||||
}
|
||||
|
||||
type clientDiscoItemsQuery struct {
|
||||
XMLName xml.Name `xml:"query"`
|
||||
Items []clientDiscoItem `xml:"item"`
|
||||
}
|
||||
|
||||
type DiscoIdentity struct {
|
||||
Category string
|
||||
Type string
|
||||
Name string
|
||||
}
|
||||
|
||||
type DiscoItem struct {
|
||||
Jid string
|
||||
Name string
|
||||
Node string
|
||||
}
|
||||
|
||||
type DiscoResult struct {
|
||||
Features []string
|
||||
Identities []DiscoIdentity
|
||||
}
|
||||
|
||||
type DiscoItems struct {
|
||||
Jid string
|
||||
Items []DiscoItem
|
||||
}
|
||||
|
||||
func clientFeaturesToReturn(features []clientDiscoFeature) []string {
|
||||
var ret []string
|
||||
|
||||
for _, feature := range features {
|
||||
ret = append(ret, feature.Var)
|
||||
}
|
||||
|
||||
return ret
|
||||
}
|
||||
|
||||
func clientIdentitiesToReturn(identities []clientDiscoIdentity) []DiscoIdentity {
|
||||
var ret []DiscoIdentity
|
||||
|
||||
for _, id := range identities {
|
||||
ret = append(ret, DiscoIdentity{
|
||||
Category: id.Category,
|
||||
Type: id.Type,
|
||||
Name: id.Name,
|
||||
})
|
||||
}
|
||||
|
||||
return ret
|
||||
}
|
||||
|
||||
func clientDiscoItemsToReturn(items []clientDiscoItem) []DiscoItem {
|
||||
var ret []DiscoItem
|
||||
for _, item := range items {
|
||||
ret = append(ret, DiscoItem{
|
||||
Jid: item.Jid,
|
||||
Name: item.Name,
|
||||
Node: item.Node,
|
||||
})
|
||||
}
|
||||
|
||||
return ret
|
||||
}
|
20
vendor/github.com/matterbridge/go-xmpp/xmpp_information_query.go
generated
vendored
20
vendor/github.com/matterbridge/go-xmpp/xmpp_information_query.go
generated
vendored
@@ -10,10 +10,26 @@ const IQTypeSet = "set"
|
||||
const IQTypeResult = "result"
|
||||
|
||||
func (c *Client) Discovery() (string, error) {
|
||||
const namespace = "http://jabber.org/protocol/disco#items"
|
||||
// use getCookie for a pseudo random id.
|
||||
reqID := strconv.FormatUint(uint64(getCookie()), 10)
|
||||
return c.RawInformationQuery(c.jid, c.domain, reqID, IQTypeGet, namespace, "")
|
||||
return c.RawInformationQuery(c.jid, c.domain, reqID, IQTypeGet, XMPPNS_DISCO_ITEMS, "")
|
||||
}
|
||||
|
||||
// Discover information about a node
|
||||
func (c *Client) DiscoverNodeInfo(node string) (string, error) {
|
||||
query := fmt.Sprintf("<query xmlns='%s' node='%s'/>", XMPPNS_DISCO_INFO, node)
|
||||
return c.RawInformation(c.jid, c.domain, "info3", IQTypeGet, query)
|
||||
}
|
||||
|
||||
// Discover items that the server exposes
|
||||
func (c *Client) DiscoverServerItems() (string, error) {
|
||||
return c.DiscoverEntityItems(c.domain)
|
||||
}
|
||||
|
||||
// Discover items that an entity exposes
|
||||
func (c *Client) DiscoverEntityItems(jid string) (string, error) {
|
||||
query := fmt.Sprintf("<query xmlns='%s'/>", XMPPNS_DISCO_ITEMS)
|
||||
return c.RawInformation(c.jid, jid, "info1", IQTypeGet, query)
|
||||
}
|
||||
|
||||
// RawInformationQuery sends an information query request to the server.
|
||||
|
82
vendor/github.com/matterbridge/go-xmpp/xmpp_muc.go
generated
vendored
82
vendor/github.com/matterbridge/go-xmpp/xmpp_muc.go
generated
vendored
@@ -8,19 +8,19 @@
|
||||
package xmpp
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"time"
|
||||
"errors"
|
||||
)
|
||||
|
||||
const (
|
||||
nsMUC = "http://jabber.org/protocol/muc"
|
||||
nsMUCUser = "http://jabber.org/protocol/muc#user"
|
||||
NoHistory = 0
|
||||
CharHistory = 1
|
||||
StanzaHistory = 2
|
||||
nsMUC = "http://jabber.org/protocol/muc"
|
||||
nsMUCUser = "http://jabber.org/protocol/muc#user"
|
||||
NoHistory = 0
|
||||
CharHistory = 1
|
||||
StanzaHistory = 2
|
||||
SecondsHistory = 3
|
||||
SinceHistory = 4
|
||||
SinceHistory = 4
|
||||
)
|
||||
|
||||
// Send sends room topic wrapped inside an XMPP message stanza body.
|
||||
@@ -47,35 +47,35 @@ func (c *Client) JoinMUC(jid, nick string, history_type, history int, history_da
|
||||
}
|
||||
switch history_type {
|
||||
case NoHistory:
|
||||
return fmt.Fprintf(c.conn, "<presence to='%s/%s'>\n" +
|
||||
"<x xmlns='%s' />\n" +
|
||||
return fmt.Fprintf(c.conn, "<presence to='%s/%s'>\n"+
|
||||
"<x xmlns='%s' />\n"+
|
||||
"</presence>",
|
||||
xmlEscape(jid), xmlEscape(nick), nsMUC)
|
||||
xmlEscape(jid), xmlEscape(nick), nsMUC)
|
||||
case CharHistory:
|
||||
return fmt.Fprintf(c.conn, "<presence to='%s/%s'>\n" +
|
||||
"<x xmlns='%s'>\n" +
|
||||
return fmt.Fprintf(c.conn, "<presence to='%s/%s'>\n"+
|
||||
"<x xmlns='%s'>\n"+
|
||||
"<history maxchars='%d'/></x>\n"+
|
||||
"</presence>",
|
||||
xmlEscape(jid), xmlEscape(nick), nsMUC, history)
|
||||
xmlEscape(jid), xmlEscape(nick), nsMUC, history)
|
||||
case StanzaHistory:
|
||||
return fmt.Fprintf(c.conn, "<presence to='%s/%s'>\n" +
|
||||
"<x xmlns='%s'>\n" +
|
||||
return fmt.Fprintf(c.conn, "<presence to='%s/%s'>\n"+
|
||||
"<x xmlns='%s'>\n"+
|
||||
"<history maxstanzas='%d'/></x>\n"+
|
||||
"</presence>",
|
||||
xmlEscape(jid), xmlEscape(nick), nsMUC, history)
|
||||
xmlEscape(jid), xmlEscape(nick), nsMUC, history)
|
||||
case SecondsHistory:
|
||||
return fmt.Fprintf(c.conn, "<presence to='%s/%s'>\n" +
|
||||
"<x xmlns='%s'>\n" +
|
||||
return fmt.Fprintf(c.conn, "<presence to='%s/%s'>\n"+
|
||||
"<x xmlns='%s'>\n"+
|
||||
"<history seconds='%d'/></x>\n"+
|
||||
"</presence>",
|
||||
xmlEscape(jid), xmlEscape(nick), nsMUC, history)
|
||||
xmlEscape(jid), xmlEscape(nick), nsMUC, history)
|
||||
case SinceHistory:
|
||||
if history_date != nil {
|
||||
return fmt.Fprintf(c.conn, "<presence to='%s/%s'>\n" +
|
||||
"<x xmlns='%s'>\n" +
|
||||
"<history since='%s'/></x>\n" +
|
||||
return fmt.Fprintf(c.conn, "<presence to='%s/%s'>\n"+
|
||||
"<x xmlns='%s'>\n"+
|
||||
"<history since='%s'/></x>\n"+
|
||||
"</presence>",
|
||||
xmlEscape(jid), xmlEscape(nick), nsMUC, history_date.Format(time.RFC3339))
|
||||
xmlEscape(jid), xmlEscape(nick), nsMUC, history_date.Format(time.RFC3339))
|
||||
}
|
||||
}
|
||||
return 0, errors.New("Unknown history option")
|
||||
@@ -88,41 +88,41 @@ func (c *Client) JoinProtectedMUC(jid, nick string, password string, history_typ
|
||||
}
|
||||
switch history_type {
|
||||
case NoHistory:
|
||||
return fmt.Fprintf(c.conn, "<presence to='%s/%s'>\n" +
|
||||
"<x xmlns='%s'>\n" +
|
||||
"<password>%s</password>" +
|
||||
"</x>\n" +
|
||||
return fmt.Fprintf(c.conn, "<presence to='%s/%s'>\n"+
|
||||
"<x xmlns='%s'>\n"+
|
||||
"<password>%s</password>"+
|
||||
"</x>\n"+
|
||||
"</presence>",
|
||||
xmlEscape(jid), xmlEscape(nick), nsMUC, xmlEscape(password))
|
||||
xmlEscape(jid), xmlEscape(nick), nsMUC, xmlEscape(password))
|
||||
case CharHistory:
|
||||
return fmt.Fprintf(c.conn, "<presence to='%s/%s'>\n" +
|
||||
"<x xmlns='%s'>\n" +
|
||||
return fmt.Fprintf(c.conn, "<presence to='%s/%s'>\n"+
|
||||
"<x xmlns='%s'>\n"+
|
||||
"<password>%s</password>\n"+
|
||||
"<history maxchars='%d'/></x>\n"+
|
||||
"</presence>",
|
||||
xmlEscape(jid), xmlEscape(nick), nsMUC, xmlEscape(password), history)
|
||||
xmlEscape(jid), xmlEscape(nick), nsMUC, xmlEscape(password), history)
|
||||
case StanzaHistory:
|
||||
return fmt.Fprintf(c.conn, "<presence to='%s/%s'>\n" +
|
||||
"<x xmlns='%s'>\n" +
|
||||
return fmt.Fprintf(c.conn, "<presence to='%s/%s'>\n"+
|
||||
"<x xmlns='%s'>\n"+
|
||||
"<password>%s</password>\n"+
|
||||
"<history maxstanzas='%d'/></x>\n"+
|
||||
"</presence>",
|
||||
xmlEscape(jid), xmlEscape(nick), nsMUC, xmlEscape(password), history)
|
||||
xmlEscape(jid), xmlEscape(nick), nsMUC, xmlEscape(password), history)
|
||||
case SecondsHistory:
|
||||
return fmt.Fprintf(c.conn, "<presence to='%s/%s'>\n" +
|
||||
"<x xmlns='%s'>\n" +
|
||||
return fmt.Fprintf(c.conn, "<presence to='%s/%s'>\n"+
|
||||
"<x xmlns='%s'>\n"+
|
||||
"<password>%s</password>\n"+
|
||||
"<history seconds='%d'/></x>\n"+
|
||||
"</presence>",
|
||||
xmlEscape(jid), xmlEscape(nick), nsMUC, xmlEscape(password), history)
|
||||
xmlEscape(jid), xmlEscape(nick), nsMUC, xmlEscape(password), history)
|
||||
case SinceHistory:
|
||||
if history_date != nil {
|
||||
return fmt.Fprintf(c.conn, "<presence to='%s/%s'>\n" +
|
||||
"<x xmlns='%s'>\n" +
|
||||
return fmt.Fprintf(c.conn, "<presence to='%s/%s'>\n"+
|
||||
"<x xmlns='%s'>\n"+
|
||||
"<password>%s</password>\n"+
|
||||
"<history since='%s'/></x>\n" +
|
||||
"<history since='%s'/></x>\n"+
|
||||
"</presence>",
|
||||
xmlEscape(jid), xmlEscape(nick), nsMUC, xmlEscape(password), history_date.Format(time.RFC3339))
|
||||
xmlEscape(jid), xmlEscape(nick), nsMUC, xmlEscape(password), history_date.Format(time.RFC3339))
|
||||
}
|
||||
}
|
||||
return 0, errors.New("Unknown history option")
|
||||
|
133
vendor/github.com/matterbridge/go-xmpp/xmpp_pubsub.go
generated
vendored
Normal file
133
vendor/github.com/matterbridge/go-xmpp/xmpp_pubsub.go
generated
vendored
Normal file
@@ -0,0 +1,133 @@
|
||||
package xmpp
|
||||
|
||||
import (
|
||||
"encoding/xml"
|
||||
"fmt"
|
||||
)
|
||||
|
||||
const (
|
||||
XMPPNS_PUBSUB = "http://jabber.org/protocol/pubsub"
|
||||
XMPPNS_PUBSUB_EVENT = "http://jabber.org/protocol/pubsub#event"
|
||||
)
|
||||
|
||||
type clientPubsubItem struct {
|
||||
XMLName xml.Name `xml:"item"`
|
||||
ID string `xml:"id,attr"`
|
||||
Body []byte `xml:",innerxml"`
|
||||
}
|
||||
|
||||
type clientPubsubItems struct {
|
||||
XMLName xml.Name `xml:"items"`
|
||||
Node string `xml:"node,attr"`
|
||||
Items []clientPubsubItem `xml:"item"`
|
||||
}
|
||||
|
||||
type clientPubsub struct {
|
||||
XMLName xml.Name `xml:"pubsub"`
|
||||
Items clientPubsubItems `xml:"items"`
|
||||
}
|
||||
|
||||
type clientPubsubEvent struct {
|
||||
XMLName xml.Name `xml:"event"`
|
||||
XMLNS string `xml:"xmlns,attr"`
|
||||
Items clientPubsubItems `xml:"items"`
|
||||
}
|
||||
|
||||
type clientPubsubError struct {
|
||||
XMLName xml.Name
|
||||
}
|
||||
|
||||
type clientPubsubSubscription struct {
|
||||
XMLName xml.Name `xml:"subscription"`
|
||||
Node string `xml:"node,attr"`
|
||||
JID string `xml:"jid,attr"`
|
||||
SubID string `xml:"subid,attr"`
|
||||
}
|
||||
|
||||
type PubsubEvent struct {
|
||||
Node string
|
||||
Items []PubsubItem
|
||||
}
|
||||
|
||||
type PubsubSubscription struct {
|
||||
SubID string
|
||||
JID string
|
||||
Node string
|
||||
Errors []string
|
||||
}
|
||||
type PubsubUnsubscription PubsubSubscription
|
||||
|
||||
type PubsubItem struct {
|
||||
ID string
|
||||
InnerXML []byte
|
||||
}
|
||||
|
||||
type PubsubItems struct {
|
||||
Node string
|
||||
Items []PubsubItem
|
||||
}
|
||||
|
||||
// Converts []clientPubsubItem to []PubsubItem
|
||||
func pubsubItemsToReturn(items []clientPubsubItem) []PubsubItem {
|
||||
var tmp []PubsubItem
|
||||
for _, i := range items {
|
||||
tmp = append(tmp, PubsubItem{
|
||||
ID: i.ID,
|
||||
InnerXML: i.Body,
|
||||
})
|
||||
}
|
||||
|
||||
return tmp
|
||||
}
|
||||
|
||||
func pubsubClientToReturn(event clientPubsubEvent) PubsubEvent {
|
||||
return PubsubEvent{
|
||||
Node: event.Items.Node,
|
||||
Items: pubsubItemsToReturn(event.Items.Items),
|
||||
}
|
||||
}
|
||||
|
||||
func pubsubStanza(body string) string {
|
||||
return fmt.Sprintf("<pubsub xmlns='%s'>%s</pubsub>",
|
||||
XMPPNS_PUBSUB, body)
|
||||
}
|
||||
|
||||
func pubsubSubscriptionStanza(node, jid string) string {
|
||||
body := fmt.Sprintf("<subscribe node='%s' jid='%s'/>",
|
||||
xmlEscape(node),
|
||||
xmlEscape(jid))
|
||||
return pubsubStanza(body)
|
||||
}
|
||||
|
||||
func pubsubUnsubscriptionStanza(node, jid string) string {
|
||||
body := fmt.Sprintf("<unsubscribe node='%s' jid='%s'/>",
|
||||
xmlEscape(node),
|
||||
xmlEscape(jid))
|
||||
return pubsubStanza(body)
|
||||
}
|
||||
|
||||
func (c *Client) PubsubSubscribeNode(node, jid string) {
|
||||
c.RawInformation(c.jid,
|
||||
jid,
|
||||
"sub1",
|
||||
"set",
|
||||
pubsubSubscriptionStanza(node, c.jid))
|
||||
}
|
||||
|
||||
func (c *Client) PubsubUnsubscribeNode(node, jid string) {
|
||||
c.RawInformation(c.jid,
|
||||
jid,
|
||||
"unsub1",
|
||||
"set",
|
||||
pubsubUnsubscriptionStanza(node, c.jid))
|
||||
}
|
||||
|
||||
func (c *Client) PubsubRequestLastItems(node, jid string) {
|
||||
body := fmt.Sprintf("<items node='%s'/>", node)
|
||||
c.RawInformation(c.jid, jid, "items1", "get", pubsubStanza(body))
|
||||
}
|
||||
|
||||
func (c *Client) PubsubRequestItem(node, jid, id string) {
|
||||
body := fmt.Sprintf("<items node='%s'><item id='%s'/></items>", node, id)
|
||||
c.RawInformation(c.jid, jid, "items3", "get", pubsubStanza(body))
|
||||
}
|
41
vendor/github.com/matterbridge/msgraph.go/beta/ACLTypeEnum.go
generated
vendored
41
vendor/github.com/matterbridge/msgraph.go/beta/ACLTypeEnum.go
generated
vendored
@@ -1,41 +0,0 @@
|
||||
// Code generated by msgraph-generate.go DO NOT EDIT.
|
||||
|
||||
package msgraph
|
||||
|
||||
// ACLType undocumented
|
||||
type ACLType int
|
||||
|
||||
const (
|
||||
// ACLTypeVUser undocumented
|
||||
ACLTypeVUser ACLType = 1
|
||||
// ACLTypeVGroup undocumented
|
||||
ACLTypeVGroup ACLType = 2
|
||||
// ACLTypeVEveryone undocumented
|
||||
ACLTypeVEveryone ACLType = 3
|
||||
// ACLTypeVEveryoneExceptGuests undocumented
|
||||
ACLTypeVEveryoneExceptGuests ACLType = 4
|
||||
)
|
||||
|
||||
// ACLTypePUser returns a pointer to ACLTypeVUser
|
||||
func ACLTypePUser() *ACLType {
|
||||
v := ACLTypeVUser
|
||||
return &v
|
||||
}
|
||||
|
||||
// ACLTypePGroup returns a pointer to ACLTypeVGroup
|
||||
func ACLTypePGroup() *ACLType {
|
||||
v := ACLTypeVGroup
|
||||
return &v
|
||||
}
|
||||
|
||||
// ACLTypePEveryone returns a pointer to ACLTypeVEveryone
|
||||
func ACLTypePEveryone() *ACLType {
|
||||
v := ACLTypeVEveryone
|
||||
return &v
|
||||
}
|
||||
|
||||
// ACLTypePEveryoneExceptGuests returns a pointer to ACLTypeVEveryoneExceptGuests
|
||||
func ACLTypePEveryoneExceptGuests() *ACLType {
|
||||
v := ACLTypeVEveryoneExceptGuests
|
||||
return &v
|
||||
}
|
19
vendor/github.com/matterbridge/msgraph.go/beta/APIApplicationModel.go
generated
vendored
19
vendor/github.com/matterbridge/msgraph.go/beta/APIApplicationModel.go
generated
vendored
@@ -1,19 +0,0 @@
|
||||
// Code generated by msgraph-generate.go DO NOT EDIT.
|
||||
|
||||
package msgraph
|
||||
|
||||
// APIApplication undocumented
|
||||
type APIApplication struct {
|
||||
// Object is the base model of APIApplication
|
||||
Object
|
||||
// AcceptMappedClaims undocumented
|
||||
AcceptMappedClaims *bool `json:"acceptMappedClaims,omitempty"`
|
||||
// KnownClientApplications undocumented
|
||||
KnownClientApplications []UUID `json:"knownClientApplications,omitempty"`
|
||||
// PreAuthorizedApplications undocumented
|
||||
PreAuthorizedApplications []PreAuthorizedApplication `json:"preAuthorizedApplications,omitempty"`
|
||||
// RequestedAccessTokenVersion undocumented
|
||||
RequestedAccessTokenVersion *int `json:"requestedAccessTokenVersion,omitempty"`
|
||||
// Oauth2PermissionScopes undocumented
|
||||
Oauth2PermissionScopes []PermissionScope `json:"oauth2PermissionScopes,omitempty"`
|
||||
}
|
11
vendor/github.com/matterbridge/msgraph.go/beta/APIServicePrincipalModel.go
generated
vendored
11
vendor/github.com/matterbridge/msgraph.go/beta/APIServicePrincipalModel.go
generated
vendored
@@ -1,11 +0,0 @@
|
||||
// Code generated by msgraph-generate.go DO NOT EDIT.
|
||||
|
||||
package msgraph
|
||||
|
||||
// APIServicePrincipal undocumented
|
||||
type APIServicePrincipal struct {
|
||||
// Object is the base model of APIServicePrincipal
|
||||
Object
|
||||
// ResourceSpecificApplicationPermissions undocumented
|
||||
ResourceSpecificApplicationPermissions []ResourceSpecificPermission `json:"resourceSpecificApplicationPermissions,omitempty"`
|
||||
}
|
45
vendor/github.com/matterbridge/msgraph.go/beta/AadUserConversationMemberRequest.go
generated
vendored
45
vendor/github.com/matterbridge/msgraph.go/beta/AadUserConversationMemberRequest.go
generated
vendored
@@ -1,45 +0,0 @@
|
||||
// Code generated by msgraph-generate.go DO NOT EDIT.
|
||||
|
||||
package msgraph
|
||||
|
||||
import "context"
|
||||
|
||||
// AadUserConversationMemberRequestBuilder is request builder for AadUserConversationMember
|
||||
type AadUserConversationMemberRequestBuilder struct{ BaseRequestBuilder }
|
||||
|
||||
// Request returns AadUserConversationMemberRequest
|
||||
func (b *AadUserConversationMemberRequestBuilder) Request() *AadUserConversationMemberRequest {
|
||||
return &AadUserConversationMemberRequest{
|
||||
BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
|
||||
}
|
||||
}
|
||||
|
||||
// AadUserConversationMemberRequest is request for AadUserConversationMember
|
||||
type AadUserConversationMemberRequest struct{ BaseRequest }
|
||||
|
||||
// Get performs GET request for AadUserConversationMember
|
||||
func (r *AadUserConversationMemberRequest) Get(ctx context.Context) (resObj *AadUserConversationMember, err error) {
|
||||
var query string
|
||||
if r.query != nil {
|
||||
query = "?" + r.query.Encode()
|
||||
}
|
||||
err = r.JSONRequest(ctx, "GET", query, nil, &resObj)
|
||||
return
|
||||
}
|
||||
|
||||
// Update performs PATCH request for AadUserConversationMember
|
||||
func (r *AadUserConversationMemberRequest) Update(ctx context.Context, reqObj *AadUserConversationMember) error {
|
||||
return r.JSONRequest(ctx, "PATCH", "", reqObj, nil)
|
||||
}
|
||||
|
||||
// Delete performs DELETE request for AadUserConversationMember
|
||||
func (r *AadUserConversationMemberRequest) Delete(ctx context.Context) error {
|
||||
return r.JSONRequest(ctx, "DELETE", "", nil, nil)
|
||||
}
|
||||
|
||||
// User is navigation property
|
||||
func (b *AadUserConversationMemberRequestBuilder) User() *UserRequestBuilder {
|
||||
bb := &UserRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
|
||||
bb.baseURL += "/user"
|
||||
return bb
|
||||
}
|
9
vendor/github.com/matterbridge/msgraph.go/beta/AccessActionModel.go
generated
vendored
9
vendor/github.com/matterbridge/msgraph.go/beta/AccessActionModel.go
generated
vendored
@@ -1,9 +0,0 @@
|
||||
// Code generated by msgraph-generate.go DO NOT EDIT.
|
||||
|
||||
package msgraph
|
||||
|
||||
// AccessAction undocumented
|
||||
type AccessAction struct {
|
||||
// Object is the base model of AccessAction
|
||||
Object
|
||||
}
|
49
vendor/github.com/matterbridge/msgraph.go/beta/AccessLevelEnum.go
generated
vendored
49
vendor/github.com/matterbridge/msgraph.go/beta/AccessLevelEnum.go
generated
vendored
@@ -1,49 +0,0 @@
|
||||
// Code generated by msgraph-generate.go DO NOT EDIT.
|
||||
|
||||
package msgraph
|
||||
|
||||
// AccessLevel undocumented
|
||||
type AccessLevel int
|
||||
|
||||
const (
|
||||
// AccessLevelVEveryone undocumented
|
||||
AccessLevelVEveryone AccessLevel = 0
|
||||
// AccessLevelVInvited undocumented
|
||||
AccessLevelVInvited AccessLevel = 1
|
||||
// AccessLevelVLocked undocumented
|
||||
AccessLevelVLocked AccessLevel = 2
|
||||
// AccessLevelVSameEnterprise undocumented
|
||||
AccessLevelVSameEnterprise AccessLevel = 3
|
||||
// AccessLevelVSameEnterpriseAndFederated undocumented
|
||||
AccessLevelVSameEnterpriseAndFederated AccessLevel = 4
|
||||
)
|
||||
|
||||
// AccessLevelPEveryone returns a pointer to AccessLevelVEveryone
|
||||
func AccessLevelPEveryone() *AccessLevel {
|
||||
v := AccessLevelVEveryone
|
||||
return &v
|
||||
}
|
||||
|
||||
// AccessLevelPInvited returns a pointer to AccessLevelVInvited
|
||||
func AccessLevelPInvited() *AccessLevel {
|
||||
v := AccessLevelVInvited
|
||||
return &v
|
||||
}
|
||||
|
||||
// AccessLevelPLocked returns a pointer to AccessLevelVLocked
|
||||
func AccessLevelPLocked() *AccessLevel {
|
||||
v := AccessLevelVLocked
|
||||
return &v
|
||||
}
|
||||
|
||||
// AccessLevelPSameEnterprise returns a pointer to AccessLevelVSameEnterprise
|
||||
func AccessLevelPSameEnterprise() *AccessLevel {
|
||||
v := AccessLevelVSameEnterprise
|
||||
return &v
|
||||
}
|
||||
|
||||
// AccessLevelPSameEnterpriseAndFederated returns a pointer to AccessLevelVSameEnterpriseAndFederated
|
||||
func AccessLevelPSameEnterpriseAndFederated() *AccessLevel {
|
||||
v := AccessLevelVSameEnterpriseAndFederated
|
||||
return &v
|
||||
}
|
37
vendor/github.com/matterbridge/msgraph.go/beta/AccessPackageAssignmentModel.go
generated
vendored
37
vendor/github.com/matterbridge/msgraph.go/beta/AccessPackageAssignmentModel.go
generated
vendored
@@ -1,37 +0,0 @@
|
||||
// Code generated by msgraph-generate.go DO NOT EDIT.
|
||||
|
||||
package msgraph
|
||||
|
||||
import "time"
|
||||
|
||||
// AccessPackageAssignment undocumented
|
||||
type AccessPackageAssignment struct {
|
||||
// Entity is the base model of AccessPackageAssignment
|
||||
Entity
|
||||
// CatalogID undocumented
|
||||
CatalogID *string `json:"catalogId,omitempty"`
|
||||
// AccessPackageID undocumented
|
||||
AccessPackageID *string `json:"accessPackageId,omitempty"`
|
||||
// AssignmentPolicyID undocumented
|
||||
AssignmentPolicyID *string `json:"assignmentPolicyId,omitempty"`
|
||||
// TargetID undocumented
|
||||
TargetID *string `json:"targetId,omitempty"`
|
||||
// AssignmentStatus undocumented
|
||||
AssignmentStatus *string `json:"assignmentStatus,omitempty"`
|
||||
// AssignmentState undocumented
|
||||
AssignmentState *string `json:"assignmentState,omitempty"`
|
||||
// IsExtended undocumented
|
||||
IsExtended *bool `json:"isExtended,omitempty"`
|
||||
// ExpiredDateTime undocumented
|
||||
ExpiredDateTime *time.Time `json:"expiredDateTime,omitempty"`
|
||||
// AccessPackage undocumented
|
||||
AccessPackage *AccessPackage `json:"accessPackage,omitempty"`
|
||||
// AccessPackageAssignmentPolicy undocumented
|
||||
AccessPackageAssignmentPolicy *AccessPackageAssignmentPolicy `json:"accessPackageAssignmentPolicy,omitempty"`
|
||||
// Target undocumented
|
||||
Target *AccessPackageSubject `json:"target,omitempty"`
|
||||
// AccessPackageAssignmentRequests undocumented
|
||||
AccessPackageAssignmentRequests []AccessPackageAssignmentRequestObject `json:"accessPackageAssignmentRequests,omitempty"`
|
||||
// AccessPackageAssignmentResourceRoles undocumented
|
||||
AccessPackageAssignmentResourceRoles []AccessPackageAssignmentResourceRole `json:"accessPackageAssignmentResourceRoles,omitempty"`
|
||||
}
|
39
vendor/github.com/matterbridge/msgraph.go/beta/AccessPackageAssignmentPolicyModel.go
generated
vendored
39
vendor/github.com/matterbridge/msgraph.go/beta/AccessPackageAssignmentPolicyModel.go
generated
vendored
@@ -1,39 +0,0 @@
|
||||
// Code generated by msgraph-generate.go DO NOT EDIT.
|
||||
|
||||
package msgraph
|
||||
|
||||
import "time"
|
||||
|
||||
// AccessPackageAssignmentPolicy undocumented
|
||||
type AccessPackageAssignmentPolicy struct {
|
||||
// Entity is the base model of AccessPackageAssignmentPolicy
|
||||
Entity
|
||||
// UserType undocumented
|
||||
UserType *string `json:"userType,omitempty"`
|
||||
// AccessPackageID undocumented
|
||||
AccessPackageID *string `json:"accessPackageId,omitempty"`
|
||||
// DisplayName undocumented
|
||||
DisplayName *string `json:"displayName,omitempty"`
|
||||
// Description undocumented
|
||||
Description *string `json:"description,omitempty"`
|
||||
// IsEnabled undocumented
|
||||
IsEnabled *bool `json:"isEnabled,omitempty"`
|
||||
// CanExtend undocumented
|
||||
CanExtend *bool `json:"canExtend,omitempty"`
|
||||
// DurationInDays undocumented
|
||||
DurationInDays *int `json:"durationInDays,omitempty"`
|
||||
// ExpirationDateTime undocumented
|
||||
ExpirationDateTime *time.Time `json:"expirationDateTime,omitempty"`
|
||||
// CreatedBy undocumented
|
||||
CreatedBy *string `json:"createdBy,omitempty"`
|
||||
// CreatedDateTime undocumented
|
||||
CreatedDateTime *time.Time `json:"createdDateTime,omitempty"`
|
||||
// ModifiedBy undocumented
|
||||
ModifiedBy *string `json:"modifiedBy,omitempty"`
|
||||
// ModifiedDateTime undocumented
|
||||
ModifiedDateTime *time.Time `json:"modifiedDateTime,omitempty"`
|
||||
// AccessPackage undocumented
|
||||
AccessPackage *AccessPackage `json:"accessPackage,omitempty"`
|
||||
// AccessPackageCatalog undocumented
|
||||
AccessPackageCatalog *AccessPackageCatalog `json:"accessPackageCatalog,omitempty"`
|
||||
}
|
52
vendor/github.com/matterbridge/msgraph.go/beta/AccessPackageAssignmentPolicyRequest.go
generated
vendored
52
vendor/github.com/matterbridge/msgraph.go/beta/AccessPackageAssignmentPolicyRequest.go
generated
vendored
@@ -1,52 +0,0 @@
|
||||
// Code generated by msgraph-generate.go DO NOT EDIT.
|
||||
|
||||
package msgraph
|
||||
|
||||
import "context"
|
||||
|
||||
// AccessPackageAssignmentPolicyRequestBuilder is request builder for AccessPackageAssignmentPolicy
|
||||
type AccessPackageAssignmentPolicyRequestBuilder struct{ BaseRequestBuilder }
|
||||
|
||||
// Request returns AccessPackageAssignmentPolicyRequest
|
||||
func (b *AccessPackageAssignmentPolicyRequestBuilder) Request() *AccessPackageAssignmentPolicyRequest {
|
||||
return &AccessPackageAssignmentPolicyRequest{
|
||||
BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
|
||||
}
|
||||
}
|
||||
|
||||
// AccessPackageAssignmentPolicyRequest is request for AccessPackageAssignmentPolicy
|
||||
type AccessPackageAssignmentPolicyRequest struct{ BaseRequest }
|
||||
|
||||
// Get performs GET request for AccessPackageAssignmentPolicy
|
||||
func (r *AccessPackageAssignmentPolicyRequest) Get(ctx context.Context) (resObj *AccessPackageAssignmentPolicy, err error) {
|
||||
var query string
|
||||
if r.query != nil {
|
||||
query = "?" + r.query.Encode()
|
||||
}
|
||||
err = r.JSONRequest(ctx, "GET", query, nil, &resObj)
|
||||
return
|
||||
}
|
||||
|
||||
// Update performs PATCH request for AccessPackageAssignmentPolicy
|
||||
func (r *AccessPackageAssignmentPolicyRequest) Update(ctx context.Context, reqObj *AccessPackageAssignmentPolicy) error {
|
||||
return r.JSONRequest(ctx, "PATCH", "", reqObj, nil)
|
||||
}
|
||||
|
||||
// Delete performs DELETE request for AccessPackageAssignmentPolicy
|
||||
func (r *AccessPackageAssignmentPolicyRequest) Delete(ctx context.Context) error {
|
||||
return r.JSONRequest(ctx, "DELETE", "", nil, nil)
|
||||
}
|
||||
|
||||
// AccessPackage is navigation property
|
||||
func (b *AccessPackageAssignmentPolicyRequestBuilder) AccessPackage() *AccessPackageRequestBuilder {
|
||||
bb := &AccessPackageRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
|
||||
bb.baseURL += "/accessPackage"
|
||||
return bb
|
||||
}
|
||||
|
||||
// AccessPackageCatalog is navigation property
|
||||
func (b *AccessPackageAssignmentPolicyRequestBuilder) AccessPackageCatalog() *AccessPackageCatalogRequestBuilder {
|
||||
bb := &AccessPackageCatalogRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
|
||||
bb.baseURL += "/accessPackageCatalog"
|
||||
return bb
|
||||
}
|
254
vendor/github.com/matterbridge/msgraph.go/beta/AccessPackageAssignmentRequest.go
generated
vendored
254
vendor/github.com/matterbridge/msgraph.go/beta/AccessPackageAssignmentRequest.go
generated
vendored
@@ -1,254 +0,0 @@
|
||||
// Code generated by msgraph-generate.go DO NOT EDIT.
|
||||
|
||||
package msgraph
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"net/http"
|
||||
|
||||
"github.com/matterbridge/msgraph.go/jsonx"
|
||||
)
|
||||
|
||||
// AccessPackageAssignmentRequestBuilder is request builder for AccessPackageAssignment
|
||||
type AccessPackageAssignmentRequestBuilder struct{ BaseRequestBuilder }
|
||||
|
||||
// Request returns AccessPackageAssignmentRequest
|
||||
func (b *AccessPackageAssignmentRequestBuilder) Request() *AccessPackageAssignmentRequest {
|
||||
return &AccessPackageAssignmentRequest{
|
||||
BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
|
||||
}
|
||||
}
|
||||
|
||||
// AccessPackageAssignmentRequest is request for AccessPackageAssignment
|
||||
type AccessPackageAssignmentRequest struct{ BaseRequest }
|
||||
|
||||
// Get performs GET request for AccessPackageAssignment
|
||||
func (r *AccessPackageAssignmentRequest) Get(ctx context.Context) (resObj *AccessPackageAssignment, err error) {
|
||||
var query string
|
||||
if r.query != nil {
|
||||
query = "?" + r.query.Encode()
|
||||
}
|
||||
err = r.JSONRequest(ctx, "GET", query, nil, &resObj)
|
||||
return
|
||||
}
|
||||
|
||||
// Update performs PATCH request for AccessPackageAssignment
|
||||
func (r *AccessPackageAssignmentRequest) Update(ctx context.Context, reqObj *AccessPackageAssignment) error {
|
||||
return r.JSONRequest(ctx, "PATCH", "", reqObj, nil)
|
||||
}
|
||||
|
||||
// Delete performs DELETE request for AccessPackageAssignment
|
||||
func (r *AccessPackageAssignmentRequest) Delete(ctx context.Context) error {
|
||||
return r.JSONRequest(ctx, "DELETE", "", nil, nil)
|
||||
}
|
||||
|
||||
// AccessPackage is navigation property
|
||||
func (b *AccessPackageAssignmentRequestBuilder) AccessPackage() *AccessPackageRequestBuilder {
|
||||
bb := &AccessPackageRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
|
||||
bb.baseURL += "/accessPackage"
|
||||
return bb
|
||||
}
|
||||
|
||||
// AccessPackageAssignmentPolicy is navigation property
|
||||
func (b *AccessPackageAssignmentRequestBuilder) AccessPackageAssignmentPolicy() *AccessPackageAssignmentPolicyRequestBuilder {
|
||||
bb := &AccessPackageAssignmentPolicyRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
|
||||
bb.baseURL += "/accessPackageAssignmentPolicy"
|
||||
return bb
|
||||
}
|
||||
|
||||
// AccessPackageAssignmentRequests returns request builder for AccessPackageAssignmentRequestObject collection
|
||||
func (b *AccessPackageAssignmentRequestBuilder) AccessPackageAssignmentRequests() *AccessPackageAssignmentAccessPackageAssignmentRequestsCollectionRequestBuilder {
|
||||
bb := &AccessPackageAssignmentAccessPackageAssignmentRequestsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
|
||||
bb.baseURL += "/accessPackageAssignmentRequests"
|
||||
return bb
|
||||
}
|
||||
|
||||
// AccessPackageAssignmentAccessPackageAssignmentRequestsCollectionRequestBuilder is request builder for AccessPackageAssignmentRequestObject collection
|
||||
type AccessPackageAssignmentAccessPackageAssignmentRequestsCollectionRequestBuilder struct{ BaseRequestBuilder }
|
||||
|
||||
// Request returns request for AccessPackageAssignmentRequestObject collection
|
||||
func (b *AccessPackageAssignmentAccessPackageAssignmentRequestsCollectionRequestBuilder) Request() *AccessPackageAssignmentAccessPackageAssignmentRequestsCollectionRequest {
|
||||
return &AccessPackageAssignmentAccessPackageAssignmentRequestsCollectionRequest{
|
||||
BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
|
||||
}
|
||||
}
|
||||
|
||||
// ID returns request builder for AccessPackageAssignmentRequestObject item
|
||||
func (b *AccessPackageAssignmentAccessPackageAssignmentRequestsCollectionRequestBuilder) ID(id string) *AccessPackageAssignmentRequestObjectRequestBuilder {
|
||||
bb := &AccessPackageAssignmentRequestObjectRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
|
||||
bb.baseURL += "/" + id
|
||||
return bb
|
||||
}
|
||||
|
||||
// AccessPackageAssignmentAccessPackageAssignmentRequestsCollectionRequest is request for AccessPackageAssignmentRequestObject collection
|
||||
type AccessPackageAssignmentAccessPackageAssignmentRequestsCollectionRequest struct{ BaseRequest }
|
||||
|
||||
// Paging perfoms paging operation for AccessPackageAssignmentRequestObject collection
|
||||
func (r *AccessPackageAssignmentAccessPackageAssignmentRequestsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}) ([]AccessPackageAssignmentRequestObject, error) {
|
||||
req, err := r.NewJSONRequest(method, path, obj)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if ctx != nil {
|
||||
req = req.WithContext(ctx)
|
||||
}
|
||||
res, err := r.client.Do(req)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
var values []AccessPackageAssignmentRequestObject
|
||||
for {
|
||||
defer res.Body.Close()
|
||||
if res.StatusCode != http.StatusOK {
|
||||
b, _ := ioutil.ReadAll(res.Body)
|
||||
errRes := &ErrorResponse{Response: res}
|
||||
err := jsonx.Unmarshal(b, errRes)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("%s: %s", res.Status, string(b))
|
||||
}
|
||||
return nil, errRes
|
||||
}
|
||||
var (
|
||||
paging Paging
|
||||
value []AccessPackageAssignmentRequestObject
|
||||
)
|
||||
err := jsonx.NewDecoder(res.Body).Decode(&paging)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
err = jsonx.Unmarshal(paging.Value, &value)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
values = append(values, value...)
|
||||
if len(paging.NextLink) == 0 {
|
||||
return values, nil
|
||||
}
|
||||
req, err = http.NewRequest("GET", paging.NextLink, nil)
|
||||
if ctx != nil {
|
||||
req = req.WithContext(ctx)
|
||||
}
|
||||
res, err = r.client.Do(req)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Get performs GET request for AccessPackageAssignmentRequestObject collection
|
||||
func (r *AccessPackageAssignmentAccessPackageAssignmentRequestsCollectionRequest) Get(ctx context.Context) ([]AccessPackageAssignmentRequestObject, error) {
|
||||
var query string
|
||||
if r.query != nil {
|
||||
query = "?" + r.query.Encode()
|
||||
}
|
||||
return r.Paging(ctx, "GET", query, nil)
|
||||
}
|
||||
|
||||
// Add performs POST request for AccessPackageAssignmentRequestObject collection
|
||||
func (r *AccessPackageAssignmentAccessPackageAssignmentRequestsCollectionRequest) Add(ctx context.Context, reqObj *AccessPackageAssignmentRequestObject) (resObj *AccessPackageAssignmentRequestObject, err error) {
|
||||
err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
|
||||
return
|
||||
}
|
||||
|
||||
// AccessPackageAssignmentResourceRoles returns request builder for AccessPackageAssignmentResourceRole collection
|
||||
func (b *AccessPackageAssignmentRequestBuilder) AccessPackageAssignmentResourceRoles() *AccessPackageAssignmentAccessPackageAssignmentResourceRolesCollectionRequestBuilder {
|
||||
bb := &AccessPackageAssignmentAccessPackageAssignmentResourceRolesCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
|
||||
bb.baseURL += "/accessPackageAssignmentResourceRoles"
|
||||
return bb
|
||||
}
|
||||
|
||||
// AccessPackageAssignmentAccessPackageAssignmentResourceRolesCollectionRequestBuilder is request builder for AccessPackageAssignmentResourceRole collection
|
||||
type AccessPackageAssignmentAccessPackageAssignmentResourceRolesCollectionRequestBuilder struct{ BaseRequestBuilder }
|
||||
|
||||
// Request returns request for AccessPackageAssignmentResourceRole collection
|
||||
func (b *AccessPackageAssignmentAccessPackageAssignmentResourceRolesCollectionRequestBuilder) Request() *AccessPackageAssignmentAccessPackageAssignmentResourceRolesCollectionRequest {
|
||||
return &AccessPackageAssignmentAccessPackageAssignmentResourceRolesCollectionRequest{
|
||||
BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
|
||||
}
|
||||
}
|
||||
|
||||
// ID returns request builder for AccessPackageAssignmentResourceRole item
|
||||
func (b *AccessPackageAssignmentAccessPackageAssignmentResourceRolesCollectionRequestBuilder) ID(id string) *AccessPackageAssignmentResourceRoleRequestBuilder {
|
||||
bb := &AccessPackageAssignmentResourceRoleRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
|
||||
bb.baseURL += "/" + id
|
||||
return bb
|
||||
}
|
||||
|
||||
// AccessPackageAssignmentAccessPackageAssignmentResourceRolesCollectionRequest is request for AccessPackageAssignmentResourceRole collection
|
||||
type AccessPackageAssignmentAccessPackageAssignmentResourceRolesCollectionRequest struct{ BaseRequest }
|
||||
|
||||
// Paging perfoms paging operation for AccessPackageAssignmentResourceRole collection
|
||||
func (r *AccessPackageAssignmentAccessPackageAssignmentResourceRolesCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}) ([]AccessPackageAssignmentResourceRole, error) {
|
||||
req, err := r.NewJSONRequest(method, path, obj)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if ctx != nil {
|
||||
req = req.WithContext(ctx)
|
||||
}
|
||||
res, err := r.client.Do(req)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
var values []AccessPackageAssignmentResourceRole
|
||||
for {
|
||||
defer res.Body.Close()
|
||||
if res.StatusCode != http.StatusOK {
|
||||
b, _ := ioutil.ReadAll(res.Body)
|
||||
errRes := &ErrorResponse{Response: res}
|
||||
err := jsonx.Unmarshal(b, errRes)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("%s: %s", res.Status, string(b))
|
||||
}
|
||||
return nil, errRes
|
||||
}
|
||||
var (
|
||||
paging Paging
|
||||
value []AccessPackageAssignmentResourceRole
|
||||
)
|
||||
err := jsonx.NewDecoder(res.Body).Decode(&paging)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
err = jsonx.Unmarshal(paging.Value, &value)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
values = append(values, value...)
|
||||
if len(paging.NextLink) == 0 {
|
||||
return values, nil
|
||||
}
|
||||
req, err = http.NewRequest("GET", paging.NextLink, nil)
|
||||
if ctx != nil {
|
||||
req = req.WithContext(ctx)
|
||||
}
|
||||
res, err = r.client.Do(req)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Get performs GET request for AccessPackageAssignmentResourceRole collection
|
||||
func (r *AccessPackageAssignmentAccessPackageAssignmentResourceRolesCollectionRequest) Get(ctx context.Context) ([]AccessPackageAssignmentResourceRole, error) {
|
||||
var query string
|
||||
if r.query != nil {
|
||||
query = "?" + r.query.Encode()
|
||||
}
|
||||
return r.Paging(ctx, "GET", query, nil)
|
||||
}
|
||||
|
||||
// Add performs POST request for AccessPackageAssignmentResourceRole collection
|
||||
func (r *AccessPackageAssignmentAccessPackageAssignmentResourceRolesCollectionRequest) Add(ctx context.Context, reqObj *AccessPackageAssignmentResourceRole) (resObj *AccessPackageAssignmentResourceRole, err error) {
|
||||
err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
|
||||
return
|
||||
}
|
||||
|
||||
// Target is navigation property
|
||||
func (b *AccessPackageAssignmentRequestBuilder) Target() *AccessPackageSubjectRequestBuilder {
|
||||
bb := &AccessPackageSubjectRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
|
||||
bb.baseURL += "/target"
|
||||
return bb
|
||||
}
|
@@ -1,35 +0,0 @@
|
||||
// Code generated by msgraph-generate.go DO NOT EDIT.
|
||||
|
||||
package msgraph
|
||||
|
||||
import "context"
|
||||
|
||||
// AccessPackageAssignmentRequestObjectCancelRequestParameter undocumented
|
||||
type AccessPackageAssignmentRequestObjectCancelRequestParameter struct {
|
||||
}
|
||||
|
||||
//
|
||||
type AccessPackageAssignmentRequestObjectCancelRequestBuilder struct{ BaseRequestBuilder }
|
||||
|
||||
// Cancel action undocumented
|
||||
func (b *AccessPackageAssignmentRequestObjectRequestBuilder) Cancel(reqObj *AccessPackageAssignmentRequestObjectCancelRequestParameter) *AccessPackageAssignmentRequestObjectCancelRequestBuilder {
|
||||
bb := &AccessPackageAssignmentRequestObjectCancelRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
|
||||
bb.BaseRequestBuilder.baseURL += "/Cancel"
|
||||
bb.BaseRequestBuilder.requestObject = reqObj
|
||||
return bb
|
||||
}
|
||||
|
||||
//
|
||||
type AccessPackageAssignmentRequestObjectCancelRequest struct{ BaseRequest }
|
||||
|
||||
//
|
||||
func (b *AccessPackageAssignmentRequestObjectCancelRequestBuilder) Request() *AccessPackageAssignmentRequestObjectCancelRequest {
|
||||
return &AccessPackageAssignmentRequestObjectCancelRequest{
|
||||
BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client, requestObject: b.requestObject},
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
func (r *AccessPackageAssignmentRequestObjectCancelRequest) Post(ctx context.Context) error {
|
||||
return r.JSONRequest(ctx, "POST", "", r.requestObject, nil)
|
||||
}
|
@@ -1,33 +0,0 @@
|
||||
// Code generated by msgraph-generate.go DO NOT EDIT.
|
||||
|
||||
package msgraph
|
||||
|
||||
import "time"
|
||||
|
||||
// AccessPackageAssignmentRequestObject undocumented
|
||||
type AccessPackageAssignmentRequestObject struct {
|
||||
// Entity is the base model of AccessPackageAssignmentRequestObject
|
||||
Entity
|
||||
// RequestType undocumented
|
||||
RequestType *string `json:"requestType,omitempty"`
|
||||
// RequestState undocumented
|
||||
RequestState *string `json:"requestState,omitempty"`
|
||||
// RequestStatus undocumented
|
||||
RequestStatus *string `json:"requestStatus,omitempty"`
|
||||
// IsValidationOnly undocumented
|
||||
IsValidationOnly *bool `json:"isValidationOnly,omitempty"`
|
||||
// CreatedDateTime undocumented
|
||||
CreatedDateTime *time.Time `json:"createdDateTime,omitempty"`
|
||||
// CompletedDate undocumented
|
||||
CompletedDate *time.Time `json:"completedDate,omitempty"`
|
||||
// ExpirationDateTime undocumented
|
||||
ExpirationDateTime *time.Time `json:"expirationDateTime,omitempty"`
|
||||
// Justification undocumented
|
||||
Justification *string `json:"justification,omitempty"`
|
||||
// AccessPackage undocumented
|
||||
AccessPackage *AccessPackage `json:"accessPackage,omitempty"`
|
||||
// AccessPackageAssignment undocumented
|
||||
AccessPackageAssignment *AccessPackageAssignment `json:"accessPackageAssignment,omitempty"`
|
||||
// Requestor undocumented
|
||||
Requestor *AccessPackageSubject `json:"requestor,omitempty"`
|
||||
}
|
@@ -1,59 +0,0 @@
|
||||
// Code generated by msgraph-generate.go DO NOT EDIT.
|
||||
|
||||
package msgraph
|
||||
|
||||
import "context"
|
||||
|
||||
// AccessPackageAssignmentRequestObjectRequestBuilder is request builder for AccessPackageAssignmentRequestObject
|
||||
type AccessPackageAssignmentRequestObjectRequestBuilder struct{ BaseRequestBuilder }
|
||||
|
||||
// Request returns AccessPackageAssignmentRequestObjectRequest
|
||||
func (b *AccessPackageAssignmentRequestObjectRequestBuilder) Request() *AccessPackageAssignmentRequestObjectRequest {
|
||||
return &AccessPackageAssignmentRequestObjectRequest{
|
||||
BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
|
||||
}
|
||||
}
|
||||
|
||||
// AccessPackageAssignmentRequestObjectRequest is request for AccessPackageAssignmentRequestObject
|
||||
type AccessPackageAssignmentRequestObjectRequest struct{ BaseRequest }
|
||||
|
||||
// Get performs GET request for AccessPackageAssignmentRequestObject
|
||||
func (r *AccessPackageAssignmentRequestObjectRequest) Get(ctx context.Context) (resObj *AccessPackageAssignmentRequestObject, err error) {
|
||||
var query string
|
||||
if r.query != nil {
|
||||
query = "?" + r.query.Encode()
|
||||
}
|
||||
err = r.JSONRequest(ctx, "GET", query, nil, &resObj)
|
||||
return
|
||||
}
|
||||
|
||||
// Update performs PATCH request for AccessPackageAssignmentRequestObject
|
||||
func (r *AccessPackageAssignmentRequestObjectRequest) Update(ctx context.Context, reqObj *AccessPackageAssignmentRequestObject) error {
|
||||
return r.JSONRequest(ctx, "PATCH", "", reqObj, nil)
|
||||
}
|
||||
|
||||
// Delete performs DELETE request for AccessPackageAssignmentRequestObject
|
||||
func (r *AccessPackageAssignmentRequestObjectRequest) Delete(ctx context.Context) error {
|
||||
return r.JSONRequest(ctx, "DELETE", "", nil, nil)
|
||||
}
|
||||
|
||||
// AccessPackage is navigation property
|
||||
func (b *AccessPackageAssignmentRequestObjectRequestBuilder) AccessPackage() *AccessPackageRequestBuilder {
|
||||
bb := &AccessPackageRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
|
||||
bb.baseURL += "/accessPackage"
|
||||
return bb
|
||||
}
|
||||
|
||||
// AccessPackageAssignment is navigation property
|
||||
func (b *AccessPackageAssignmentRequestObjectRequestBuilder) AccessPackageAssignment() *AccessPackageAssignmentRequestBuilder {
|
||||
bb := &AccessPackageAssignmentRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
|
||||
bb.baseURL += "/accessPackageAssignment"
|
||||
return bb
|
||||
}
|
||||
|
||||
// Requestor is navigation property
|
||||
func (b *AccessPackageAssignmentRequestObjectRequestBuilder) Requestor() *AccessPackageSubjectRequestBuilder {
|
||||
bb := &AccessPackageSubjectRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
|
||||
bb.baseURL += "/requestor"
|
||||
return bb
|
||||
}
|
@@ -1,23 +0,0 @@
|
||||
// Code generated by msgraph-generate.go DO NOT EDIT.
|
||||
|
||||
package msgraph
|
||||
|
||||
// AccessPackageAssignmentResourceRole undocumented
|
||||
type AccessPackageAssignmentResourceRole struct {
|
||||
// Entity is the base model of AccessPackageAssignmentResourceRole
|
||||
Entity
|
||||
// OriginID undocumented
|
||||
OriginID *string `json:"originId,omitempty"`
|
||||
// OriginSystem undocumented
|
||||
OriginSystem *string `json:"originSystem,omitempty"`
|
||||
// Status undocumented
|
||||
Status *string `json:"status,omitempty"`
|
||||
// AccessPackageResourceScope undocumented
|
||||
AccessPackageResourceScope *AccessPackageResourceScope `json:"accessPackageResourceScope,omitempty"`
|
||||
// AccessPackageResourceRole undocumented
|
||||
AccessPackageResourceRole *AccessPackageResourceRole `json:"accessPackageResourceRole,omitempty"`
|
||||
// AccessPackageSubject undocumented
|
||||
AccessPackageSubject *AccessPackageSubject `json:"accessPackageSubject,omitempty"`
|
||||
// AccessPackageAssignments undocumented
|
||||
AccessPackageAssignments []AccessPackageAssignment `json:"accessPackageAssignments,omitempty"`
|
||||
}
|
160
vendor/github.com/matterbridge/msgraph.go/beta/AccessPackageAssignmentResourceRoleRequest.go
generated
vendored
160
vendor/github.com/matterbridge/msgraph.go/beta/AccessPackageAssignmentResourceRoleRequest.go
generated
vendored
@@ -1,160 +0,0 @@
|
||||
// Code generated by msgraph-generate.go DO NOT EDIT.
|
||||
|
||||
package msgraph
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"net/http"
|
||||
|
||||
"github.com/matterbridge/msgraph.go/jsonx"
|
||||
)
|
||||
|
||||
// AccessPackageAssignmentResourceRoleRequestBuilder is request builder for AccessPackageAssignmentResourceRole
|
||||
type AccessPackageAssignmentResourceRoleRequestBuilder struct{ BaseRequestBuilder }
|
||||
|
||||
// Request returns AccessPackageAssignmentResourceRoleRequest
|
||||
func (b *AccessPackageAssignmentResourceRoleRequestBuilder) Request() *AccessPackageAssignmentResourceRoleRequest {
|
||||
return &AccessPackageAssignmentResourceRoleRequest{
|
||||
BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
|
||||
}
|
||||
}
|
||||
|
||||
// AccessPackageAssignmentResourceRoleRequest is request for AccessPackageAssignmentResourceRole
|
||||
type AccessPackageAssignmentResourceRoleRequest struct{ BaseRequest }
|
||||
|
||||
// Get performs GET request for AccessPackageAssignmentResourceRole
|
||||
func (r *AccessPackageAssignmentResourceRoleRequest) Get(ctx context.Context) (resObj *AccessPackageAssignmentResourceRole, err error) {
|
||||
var query string
|
||||
if r.query != nil {
|
||||
query = "?" + r.query.Encode()
|
||||
}
|
||||
err = r.JSONRequest(ctx, "GET", query, nil, &resObj)
|
||||
return
|
||||
}
|
||||
|
||||
// Update performs PATCH request for AccessPackageAssignmentResourceRole
|
||||
func (r *AccessPackageAssignmentResourceRoleRequest) Update(ctx context.Context, reqObj *AccessPackageAssignmentResourceRole) error {
|
||||
return r.JSONRequest(ctx, "PATCH", "", reqObj, nil)
|
||||
}
|
||||
|
||||
// Delete performs DELETE request for AccessPackageAssignmentResourceRole
|
||||
func (r *AccessPackageAssignmentResourceRoleRequest) Delete(ctx context.Context) error {
|
||||
return r.JSONRequest(ctx, "DELETE", "", nil, nil)
|
||||
}
|
||||
|
||||
// AccessPackageAssignments returns request builder for AccessPackageAssignment collection
|
||||
func (b *AccessPackageAssignmentResourceRoleRequestBuilder) AccessPackageAssignments() *AccessPackageAssignmentResourceRoleAccessPackageAssignmentsCollectionRequestBuilder {
|
||||
bb := &AccessPackageAssignmentResourceRoleAccessPackageAssignmentsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
|
||||
bb.baseURL += "/accessPackageAssignments"
|
||||
return bb
|
||||
}
|
||||
|
||||
// AccessPackageAssignmentResourceRoleAccessPackageAssignmentsCollectionRequestBuilder is request builder for AccessPackageAssignment collection
|
||||
type AccessPackageAssignmentResourceRoleAccessPackageAssignmentsCollectionRequestBuilder struct{ BaseRequestBuilder }
|
||||
|
||||
// Request returns request for AccessPackageAssignment collection
|
||||
func (b *AccessPackageAssignmentResourceRoleAccessPackageAssignmentsCollectionRequestBuilder) Request() *AccessPackageAssignmentResourceRoleAccessPackageAssignmentsCollectionRequest {
|
||||
return &AccessPackageAssignmentResourceRoleAccessPackageAssignmentsCollectionRequest{
|
||||
BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
|
||||
}
|
||||
}
|
||||
|
||||
// ID returns request builder for AccessPackageAssignment item
|
||||
func (b *AccessPackageAssignmentResourceRoleAccessPackageAssignmentsCollectionRequestBuilder) ID(id string) *AccessPackageAssignmentRequestBuilder {
|
||||
bb := &AccessPackageAssignmentRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
|
||||
bb.baseURL += "/" + id
|
||||
return bb
|
||||
}
|
||||
|
||||
// AccessPackageAssignmentResourceRoleAccessPackageAssignmentsCollectionRequest is request for AccessPackageAssignment collection
|
||||
type AccessPackageAssignmentResourceRoleAccessPackageAssignmentsCollectionRequest struct{ BaseRequest }
|
||||
|
||||
// Paging perfoms paging operation for AccessPackageAssignment collection
|
||||
func (r *AccessPackageAssignmentResourceRoleAccessPackageAssignmentsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}) ([]AccessPackageAssignment, error) {
|
||||
req, err := r.NewJSONRequest(method, path, obj)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if ctx != nil {
|
||||
req = req.WithContext(ctx)
|
||||
}
|
||||
res, err := r.client.Do(req)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
var values []AccessPackageAssignment
|
||||
for {
|
||||
defer res.Body.Close()
|
||||
if res.StatusCode != http.StatusOK {
|
||||
b, _ := ioutil.ReadAll(res.Body)
|
||||
errRes := &ErrorResponse{Response: res}
|
||||
err := jsonx.Unmarshal(b, errRes)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("%s: %s", res.Status, string(b))
|
||||
}
|
||||
return nil, errRes
|
||||
}
|
||||
var (
|
||||
paging Paging
|
||||
value []AccessPackageAssignment
|
||||
)
|
||||
err := jsonx.NewDecoder(res.Body).Decode(&paging)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
err = jsonx.Unmarshal(paging.Value, &value)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
values = append(values, value...)
|
||||
if len(paging.NextLink) == 0 {
|
||||
return values, nil
|
||||
}
|
||||
req, err = http.NewRequest("GET", paging.NextLink, nil)
|
||||
if ctx != nil {
|
||||
req = req.WithContext(ctx)
|
||||
}
|
||||
res, err = r.client.Do(req)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Get performs GET request for AccessPackageAssignment collection
|
||||
func (r *AccessPackageAssignmentResourceRoleAccessPackageAssignmentsCollectionRequest) Get(ctx context.Context) ([]AccessPackageAssignment, error) {
|
||||
var query string
|
||||
if r.query != nil {
|
||||
query = "?" + r.query.Encode()
|
||||
}
|
||||
return r.Paging(ctx, "GET", query, nil)
|
||||
}
|
||||
|
||||
// Add performs POST request for AccessPackageAssignment collection
|
||||
func (r *AccessPackageAssignmentResourceRoleAccessPackageAssignmentsCollectionRequest) Add(ctx context.Context, reqObj *AccessPackageAssignment) (resObj *AccessPackageAssignment, err error) {
|
||||
err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
|
||||
return
|
||||
}
|
||||
|
||||
// AccessPackageResourceRole is navigation property
|
||||
func (b *AccessPackageAssignmentResourceRoleRequestBuilder) AccessPackageResourceRole() *AccessPackageResourceRoleRequestBuilder {
|
||||
bb := &AccessPackageResourceRoleRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
|
||||
bb.baseURL += "/accessPackageResourceRole"
|
||||
return bb
|
||||
}
|
||||
|
||||
// AccessPackageResourceScope is navigation property
|
||||
func (b *AccessPackageAssignmentResourceRoleRequestBuilder) AccessPackageResourceScope() *AccessPackageResourceScopeRequestBuilder {
|
||||
bb := &AccessPackageResourceScopeRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
|
||||
bb.baseURL += "/accessPackageResourceScope"
|
||||
return bb
|
||||
}
|
||||
|
||||
// AccessPackageSubject is navigation property
|
||||
func (b *AccessPackageAssignmentResourceRoleRequestBuilder) AccessPackageSubject() *AccessPackageSubjectRequestBuilder {
|
||||
bb := &AccessPackageSubjectRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
|
||||
bb.baseURL += "/accessPackageSubject"
|
||||
return bb
|
||||
}
|
37
vendor/github.com/matterbridge/msgraph.go/beta/AccessPackageCatalogModel.go
generated
vendored
37
vendor/github.com/matterbridge/msgraph.go/beta/AccessPackageCatalogModel.go
generated
vendored
@@ -1,37 +0,0 @@
|
||||
// Code generated by msgraph-generate.go DO NOT EDIT.
|
||||
|
||||
package msgraph
|
||||
|
||||
import "time"
|
||||
|
||||
// AccessPackageCatalog undocumented
|
||||
type AccessPackageCatalog struct {
|
||||
// Entity is the base model of AccessPackageCatalog
|
||||
Entity
|
||||
// DisplayName undocumented
|
||||
DisplayName *string `json:"displayName,omitempty"`
|
||||
// Description undocumented
|
||||
Description *string `json:"description,omitempty"`
|
||||
// CatalogType undocumented
|
||||
CatalogType *string `json:"catalogType,omitempty"`
|
||||
// CatalogStatus undocumented
|
||||
CatalogStatus *string `json:"catalogStatus,omitempty"`
|
||||
// IsExternallyVisible undocumented
|
||||
IsExternallyVisible *bool `json:"isExternallyVisible,omitempty"`
|
||||
// CreatedBy undocumented
|
||||
CreatedBy *string `json:"createdBy,omitempty"`
|
||||
// CreatedDateTime undocumented
|
||||
CreatedDateTime *time.Time `json:"createdDateTime,omitempty"`
|
||||
// ModifiedBy undocumented
|
||||
ModifiedBy *string `json:"modifiedBy,omitempty"`
|
||||
// ModifiedDateTime undocumented
|
||||
ModifiedDateTime *time.Time `json:"modifiedDateTime,omitempty"`
|
||||
// AccessPackageResources undocumented
|
||||
AccessPackageResources []AccessPackageResource `json:"accessPackageResources,omitempty"`
|
||||
// AccessPackageResourceRoles undocumented
|
||||
AccessPackageResourceRoles []AccessPackageResourceRole `json:"accessPackageResourceRoles,omitempty"`
|
||||
// AccessPackageResourceScopes undocumented
|
||||
AccessPackageResourceScopes []AccessPackageResourceScope `json:"accessPackageResourceScopes,omitempty"`
|
||||
// AccessPackages undocumented
|
||||
AccessPackages []AccessPackage `json:"accessPackages,omitempty"`
|
||||
}
|
421
vendor/github.com/matterbridge/msgraph.go/beta/AccessPackageCatalogRequest.go
generated
vendored
421
vendor/github.com/matterbridge/msgraph.go/beta/AccessPackageCatalogRequest.go
generated
vendored
@@ -1,421 +0,0 @@
|
||||
// Code generated by msgraph-generate.go DO NOT EDIT.
|
||||
|
||||
package msgraph
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"net/http"
|
||||
|
||||
"github.com/matterbridge/msgraph.go/jsonx"
|
||||
)
|
||||
|
||||
// AccessPackageCatalogRequestBuilder is request builder for AccessPackageCatalog
|
||||
type AccessPackageCatalogRequestBuilder struct{ BaseRequestBuilder }
|
||||
|
||||
// Request returns AccessPackageCatalogRequest
|
||||
func (b *AccessPackageCatalogRequestBuilder) Request() *AccessPackageCatalogRequest {
|
||||
return &AccessPackageCatalogRequest{
|
||||
BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
|
||||
}
|
||||
}
|
||||
|
||||
// AccessPackageCatalogRequest is request for AccessPackageCatalog
|
||||
type AccessPackageCatalogRequest struct{ BaseRequest }
|
||||
|
||||
// Get performs GET request for AccessPackageCatalog
|
||||
func (r *AccessPackageCatalogRequest) Get(ctx context.Context) (resObj *AccessPackageCatalog, err error) {
|
||||
var query string
|
||||
if r.query != nil {
|
||||
query = "?" + r.query.Encode()
|
||||
}
|
||||
err = r.JSONRequest(ctx, "GET", query, nil, &resObj)
|
||||
return
|
||||
}
|
||||
|
||||
// Update performs PATCH request for AccessPackageCatalog
|
||||
func (r *AccessPackageCatalogRequest) Update(ctx context.Context, reqObj *AccessPackageCatalog) error {
|
||||
return r.JSONRequest(ctx, "PATCH", "", reqObj, nil)
|
||||
}
|
||||
|
||||
// Delete performs DELETE request for AccessPackageCatalog
|
||||
func (r *AccessPackageCatalogRequest) Delete(ctx context.Context) error {
|
||||
return r.JSONRequest(ctx, "DELETE", "", nil, nil)
|
||||
}
|
||||
|
||||
// AccessPackageResourceRoles returns request builder for AccessPackageResourceRole collection
|
||||
func (b *AccessPackageCatalogRequestBuilder) AccessPackageResourceRoles() *AccessPackageCatalogAccessPackageResourceRolesCollectionRequestBuilder {
|
||||
bb := &AccessPackageCatalogAccessPackageResourceRolesCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
|
||||
bb.baseURL += "/accessPackageResourceRoles"
|
||||
return bb
|
||||
}
|
||||
|
||||
// AccessPackageCatalogAccessPackageResourceRolesCollectionRequestBuilder is request builder for AccessPackageResourceRole collection
|
||||
type AccessPackageCatalogAccessPackageResourceRolesCollectionRequestBuilder struct{ BaseRequestBuilder }
|
||||
|
||||
// Request returns request for AccessPackageResourceRole collection
|
||||
func (b *AccessPackageCatalogAccessPackageResourceRolesCollectionRequestBuilder) Request() *AccessPackageCatalogAccessPackageResourceRolesCollectionRequest {
|
||||
return &AccessPackageCatalogAccessPackageResourceRolesCollectionRequest{
|
||||
BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
|
||||
}
|
||||
}
|
||||
|
||||
// ID returns request builder for AccessPackageResourceRole item
|
||||
func (b *AccessPackageCatalogAccessPackageResourceRolesCollectionRequestBuilder) ID(id string) *AccessPackageResourceRoleRequestBuilder {
|
||||
bb := &AccessPackageResourceRoleRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
|
||||
bb.baseURL += "/" + id
|
||||
return bb
|
||||
}
|
||||
|
||||
// AccessPackageCatalogAccessPackageResourceRolesCollectionRequest is request for AccessPackageResourceRole collection
|
||||
type AccessPackageCatalogAccessPackageResourceRolesCollectionRequest struct{ BaseRequest }
|
||||
|
||||
// Paging perfoms paging operation for AccessPackageResourceRole collection
|
||||
func (r *AccessPackageCatalogAccessPackageResourceRolesCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}) ([]AccessPackageResourceRole, error) {
|
||||
req, err := r.NewJSONRequest(method, path, obj)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if ctx != nil {
|
||||
req = req.WithContext(ctx)
|
||||
}
|
||||
res, err := r.client.Do(req)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
var values []AccessPackageResourceRole
|
||||
for {
|
||||
defer res.Body.Close()
|
||||
if res.StatusCode != http.StatusOK {
|
||||
b, _ := ioutil.ReadAll(res.Body)
|
||||
errRes := &ErrorResponse{Response: res}
|
||||
err := jsonx.Unmarshal(b, errRes)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("%s: %s", res.Status, string(b))
|
||||
}
|
||||
return nil, errRes
|
||||
}
|
||||
var (
|
||||
paging Paging
|
||||
value []AccessPackageResourceRole
|
||||
)
|
||||
err := jsonx.NewDecoder(res.Body).Decode(&paging)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
err = jsonx.Unmarshal(paging.Value, &value)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
values = append(values, value...)
|
||||
if len(paging.NextLink) == 0 {
|
||||
return values, nil
|
||||
}
|
||||
req, err = http.NewRequest("GET", paging.NextLink, nil)
|
||||
if ctx != nil {
|
||||
req = req.WithContext(ctx)
|
||||
}
|
||||
res, err = r.client.Do(req)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Get performs GET request for AccessPackageResourceRole collection
|
||||
func (r *AccessPackageCatalogAccessPackageResourceRolesCollectionRequest) Get(ctx context.Context) ([]AccessPackageResourceRole, error) {
|
||||
var query string
|
||||
if r.query != nil {
|
||||
query = "?" + r.query.Encode()
|
||||
}
|
||||
return r.Paging(ctx, "GET", query, nil)
|
||||
}
|
||||
|
||||
// Add performs POST request for AccessPackageResourceRole collection
|
||||
func (r *AccessPackageCatalogAccessPackageResourceRolesCollectionRequest) Add(ctx context.Context, reqObj *AccessPackageResourceRole) (resObj *AccessPackageResourceRole, err error) {
|
||||
err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
|
||||
return
|
||||
}
|
||||
|
||||
// AccessPackageResourceScopes returns request builder for AccessPackageResourceScope collection
|
||||
func (b *AccessPackageCatalogRequestBuilder) AccessPackageResourceScopes() *AccessPackageCatalogAccessPackageResourceScopesCollectionRequestBuilder {
|
||||
bb := &AccessPackageCatalogAccessPackageResourceScopesCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
|
||||
bb.baseURL += "/accessPackageResourceScopes"
|
||||
return bb
|
||||
}
|
||||
|
||||
// AccessPackageCatalogAccessPackageResourceScopesCollectionRequestBuilder is request builder for AccessPackageResourceScope collection
|
||||
type AccessPackageCatalogAccessPackageResourceScopesCollectionRequestBuilder struct{ BaseRequestBuilder }
|
||||
|
||||
// Request returns request for AccessPackageResourceScope collection
|
||||
func (b *AccessPackageCatalogAccessPackageResourceScopesCollectionRequestBuilder) Request() *AccessPackageCatalogAccessPackageResourceScopesCollectionRequest {
|
||||
return &AccessPackageCatalogAccessPackageResourceScopesCollectionRequest{
|
||||
BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
|
||||
}
|
||||
}
|
||||
|
||||
// ID returns request builder for AccessPackageResourceScope item
|
||||
func (b *AccessPackageCatalogAccessPackageResourceScopesCollectionRequestBuilder) ID(id string) *AccessPackageResourceScopeRequestBuilder {
|
||||
bb := &AccessPackageResourceScopeRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
|
||||
bb.baseURL += "/" + id
|
||||
return bb
|
||||
}
|
||||
|
||||
// AccessPackageCatalogAccessPackageResourceScopesCollectionRequest is request for AccessPackageResourceScope collection
|
||||
type AccessPackageCatalogAccessPackageResourceScopesCollectionRequest struct{ BaseRequest }
|
||||
|
||||
// Paging perfoms paging operation for AccessPackageResourceScope collection
|
||||
func (r *AccessPackageCatalogAccessPackageResourceScopesCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}) ([]AccessPackageResourceScope, error) {
|
||||
req, err := r.NewJSONRequest(method, path, obj)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if ctx != nil {
|
||||
req = req.WithContext(ctx)
|
||||
}
|
||||
res, err := r.client.Do(req)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
var values []AccessPackageResourceScope
|
||||
for {
|
||||
defer res.Body.Close()
|
||||
if res.StatusCode != http.StatusOK {
|
||||
b, _ := ioutil.ReadAll(res.Body)
|
||||
errRes := &ErrorResponse{Response: res}
|
||||
err := jsonx.Unmarshal(b, errRes)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("%s: %s", res.Status, string(b))
|
||||
}
|
||||
return nil, errRes
|
||||
}
|
||||
var (
|
||||
paging Paging
|
||||
value []AccessPackageResourceScope
|
||||
)
|
||||
err := jsonx.NewDecoder(res.Body).Decode(&paging)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
err = jsonx.Unmarshal(paging.Value, &value)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
values = append(values, value...)
|
||||
if len(paging.NextLink) == 0 {
|
||||
return values, nil
|
||||
}
|
||||
req, err = http.NewRequest("GET", paging.NextLink, nil)
|
||||
if ctx != nil {
|
||||
req = req.WithContext(ctx)
|
||||
}
|
||||
res, err = r.client.Do(req)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Get performs GET request for AccessPackageResourceScope collection
|
||||
func (r *AccessPackageCatalogAccessPackageResourceScopesCollectionRequest) Get(ctx context.Context) ([]AccessPackageResourceScope, error) {
|
||||
var query string
|
||||
if r.query != nil {
|
||||
query = "?" + r.query.Encode()
|
||||
}
|
||||
return r.Paging(ctx, "GET", query, nil)
|
||||
}
|
||||
|
||||
// Add performs POST request for AccessPackageResourceScope collection
|
||||
func (r *AccessPackageCatalogAccessPackageResourceScopesCollectionRequest) Add(ctx context.Context, reqObj *AccessPackageResourceScope) (resObj *AccessPackageResourceScope, err error) {
|
||||
err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
|
||||
return
|
||||
}
|
||||
|
||||
// AccessPackageResources returns request builder for AccessPackageResource collection
|
||||
func (b *AccessPackageCatalogRequestBuilder) AccessPackageResources() *AccessPackageCatalogAccessPackageResourcesCollectionRequestBuilder {
|
||||
bb := &AccessPackageCatalogAccessPackageResourcesCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
|
||||
bb.baseURL += "/accessPackageResources"
|
||||
return bb
|
||||
}
|
||||
|
||||
// AccessPackageCatalogAccessPackageResourcesCollectionRequestBuilder is request builder for AccessPackageResource collection
|
||||
type AccessPackageCatalogAccessPackageResourcesCollectionRequestBuilder struct{ BaseRequestBuilder }
|
||||
|
||||
// Request returns request for AccessPackageResource collection
|
||||
func (b *AccessPackageCatalogAccessPackageResourcesCollectionRequestBuilder) Request() *AccessPackageCatalogAccessPackageResourcesCollectionRequest {
|
||||
return &AccessPackageCatalogAccessPackageResourcesCollectionRequest{
|
||||
BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
|
||||
}
|
||||
}
|
||||
|
||||
// ID returns request builder for AccessPackageResource item
|
||||
func (b *AccessPackageCatalogAccessPackageResourcesCollectionRequestBuilder) ID(id string) *AccessPackageResourceRequestBuilder {
|
||||
bb := &AccessPackageResourceRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
|
||||
bb.baseURL += "/" + id
|
||||
return bb
|
||||
}
|
||||
|
||||
// AccessPackageCatalogAccessPackageResourcesCollectionRequest is request for AccessPackageResource collection
|
||||
type AccessPackageCatalogAccessPackageResourcesCollectionRequest struct{ BaseRequest }
|
||||
|
||||
// Paging perfoms paging operation for AccessPackageResource collection
|
||||
func (r *AccessPackageCatalogAccessPackageResourcesCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}) ([]AccessPackageResource, error) {
|
||||
req, err := r.NewJSONRequest(method, path, obj)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if ctx != nil {
|
||||
req = req.WithContext(ctx)
|
||||
}
|
||||
res, err := r.client.Do(req)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
var values []AccessPackageResource
|
||||
for {
|
||||
defer res.Body.Close()
|
||||
if res.StatusCode != http.StatusOK {
|
||||
b, _ := ioutil.ReadAll(res.Body)
|
||||
errRes := &ErrorResponse{Response: res}
|
||||
err := jsonx.Unmarshal(b, errRes)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("%s: %s", res.Status, string(b))
|
||||
}
|
||||
return nil, errRes
|
||||
}
|
||||
var (
|
||||
paging Paging
|
||||
value []AccessPackageResource
|
||||
)
|
||||
err := jsonx.NewDecoder(res.Body).Decode(&paging)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
err = jsonx.Unmarshal(paging.Value, &value)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
values = append(values, value...)
|
||||
if len(paging.NextLink) == 0 {
|
||||
return values, nil
|
||||
}
|
||||
req, err = http.NewRequest("GET", paging.NextLink, nil)
|
||||
if ctx != nil {
|
||||
req = req.WithContext(ctx)
|
||||
}
|
||||
res, err = r.client.Do(req)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Get performs GET request for AccessPackageResource collection
|
||||
func (r *AccessPackageCatalogAccessPackageResourcesCollectionRequest) Get(ctx context.Context) ([]AccessPackageResource, error) {
|
||||
var query string
|
||||
if r.query != nil {
|
||||
query = "?" + r.query.Encode()
|
||||
}
|
||||
return r.Paging(ctx, "GET", query, nil)
|
||||
}
|
||||
|
||||
// Add performs POST request for AccessPackageResource collection
|
||||
func (r *AccessPackageCatalogAccessPackageResourcesCollectionRequest) Add(ctx context.Context, reqObj *AccessPackageResource) (resObj *AccessPackageResource, err error) {
|
||||
err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
|
||||
return
|
||||
}
|
||||
|
||||
// AccessPackages returns request builder for AccessPackage collection
|
||||
func (b *AccessPackageCatalogRequestBuilder) AccessPackages() *AccessPackageCatalogAccessPackagesCollectionRequestBuilder {
|
||||
bb := &AccessPackageCatalogAccessPackagesCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
|
||||
bb.baseURL += "/accessPackages"
|
||||
return bb
|
||||
}
|
||||
|
||||
// AccessPackageCatalogAccessPackagesCollectionRequestBuilder is request builder for AccessPackage collection
|
||||
type AccessPackageCatalogAccessPackagesCollectionRequestBuilder struct{ BaseRequestBuilder }
|
||||
|
||||
// Request returns request for AccessPackage collection
|
||||
func (b *AccessPackageCatalogAccessPackagesCollectionRequestBuilder) Request() *AccessPackageCatalogAccessPackagesCollectionRequest {
|
||||
return &AccessPackageCatalogAccessPackagesCollectionRequest{
|
||||
BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
|
||||
}
|
||||
}
|
||||
|
||||
// ID returns request builder for AccessPackage item
|
||||
func (b *AccessPackageCatalogAccessPackagesCollectionRequestBuilder) ID(id string) *AccessPackageRequestBuilder {
|
||||
bb := &AccessPackageRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
|
||||
bb.baseURL += "/" + id
|
||||
return bb
|
||||
}
|
||||
|
||||
// AccessPackageCatalogAccessPackagesCollectionRequest is request for AccessPackage collection
|
||||
type AccessPackageCatalogAccessPackagesCollectionRequest struct{ BaseRequest }
|
||||
|
||||
// Paging perfoms paging operation for AccessPackage collection
|
||||
func (r *AccessPackageCatalogAccessPackagesCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}) ([]AccessPackage, error) {
|
||||
req, err := r.NewJSONRequest(method, path, obj)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if ctx != nil {
|
||||
req = req.WithContext(ctx)
|
||||
}
|
||||
res, err := r.client.Do(req)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
var values []AccessPackage
|
||||
for {
|
||||
defer res.Body.Close()
|
||||
if res.StatusCode != http.StatusOK {
|
||||
b, _ := ioutil.ReadAll(res.Body)
|
||||
errRes := &ErrorResponse{Response: res}
|
||||
err := jsonx.Unmarshal(b, errRes)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("%s: %s", res.Status, string(b))
|
||||
}
|
||||
return nil, errRes
|
||||
}
|
||||
var (
|
||||
paging Paging
|
||||
value []AccessPackage
|
||||
)
|
||||
err := jsonx.NewDecoder(res.Body).Decode(&paging)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
err = jsonx.Unmarshal(paging.Value, &value)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
values = append(values, value...)
|
||||
if len(paging.NextLink) == 0 {
|
||||
return values, nil
|
||||
}
|
||||
req, err = http.NewRequest("GET", paging.NextLink, nil)
|
||||
if ctx != nil {
|
||||
req = req.WithContext(ctx)
|
||||
}
|
||||
res, err = r.client.Do(req)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Get performs GET request for AccessPackage collection
|
||||
func (r *AccessPackageCatalogAccessPackagesCollectionRequest) Get(ctx context.Context) ([]AccessPackage, error) {
|
||||
var query string
|
||||
if r.query != nil {
|
||||
query = "?" + r.query.Encode()
|
||||
}
|
||||
return r.Paging(ctx, "GET", query, nil)
|
||||
}
|
||||
|
||||
// Add performs POST request for AccessPackage collection
|
||||
func (r *AccessPackageCatalogAccessPackagesCollectionRequest) Add(ctx context.Context, reqObj *AccessPackage) (resObj *AccessPackage, err error) {
|
||||
err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
|
||||
return
|
||||
}
|
35
vendor/github.com/matterbridge/msgraph.go/beta/AccessPackageModel.go
generated
vendored
35
vendor/github.com/matterbridge/msgraph.go/beta/AccessPackageModel.go
generated
vendored
@@ -1,35 +0,0 @@
|
||||
// Code generated by msgraph-generate.go DO NOT EDIT.
|
||||
|
||||
package msgraph
|
||||
|
||||
import "time"
|
||||
|
||||
// AccessPackage undocumented
|
||||
type AccessPackage struct {
|
||||
// Entity is the base model of AccessPackage
|
||||
Entity
|
||||
// CatalogID undocumented
|
||||
CatalogID *string `json:"catalogId,omitempty"`
|
||||
// DisplayName undocumented
|
||||
DisplayName *string `json:"displayName,omitempty"`
|
||||
// Description undocumented
|
||||
Description *string `json:"description,omitempty"`
|
||||
// IsHidden undocumented
|
||||
IsHidden *bool `json:"isHidden,omitempty"`
|
||||
// IsRoleScopesVisible undocumented
|
||||
IsRoleScopesVisible *bool `json:"isRoleScopesVisible,omitempty"`
|
||||
// CreatedBy undocumented
|
||||
CreatedBy *string `json:"createdBy,omitempty"`
|
||||
// CreatedDateTime undocumented
|
||||
CreatedDateTime *time.Time `json:"createdDateTime,omitempty"`
|
||||
// ModifiedBy undocumented
|
||||
ModifiedBy *string `json:"modifiedBy,omitempty"`
|
||||
// ModifiedDateTime undocumented
|
||||
ModifiedDateTime *time.Time `json:"modifiedDateTime,omitempty"`
|
||||
// AccessPackageCatalog undocumented
|
||||
AccessPackageCatalog *AccessPackageCatalog `json:"accessPackageCatalog,omitempty"`
|
||||
// AccessPackageResourceRoleScopes undocumented
|
||||
AccessPackageResourceRoleScopes []AccessPackageResourceRoleScope `json:"accessPackageResourceRoleScopes,omitempty"`
|
||||
// AccessPackageAssignmentPolicies undocumented
|
||||
AccessPackageAssignmentPolicies []AccessPackageAssignmentPolicy `json:"accessPackageAssignmentPolicies,omitempty"`
|
||||
}
|
240
vendor/github.com/matterbridge/msgraph.go/beta/AccessPackageRequest.go
generated
vendored
240
vendor/github.com/matterbridge/msgraph.go/beta/AccessPackageRequest.go
generated
vendored
@@ -1,240 +0,0 @@
|
||||
// Code generated by msgraph-generate.go DO NOT EDIT.
|
||||
|
||||
package msgraph
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"net/http"
|
||||
|
||||
"github.com/matterbridge/msgraph.go/jsonx"
|
||||
)
|
||||
|
||||
// AccessPackageRequestBuilder is request builder for AccessPackage
|
||||
type AccessPackageRequestBuilder struct{ BaseRequestBuilder }
|
||||
|
||||
// Request returns AccessPackageRequest
|
||||
func (b *AccessPackageRequestBuilder) Request() *AccessPackageRequest {
|
||||
return &AccessPackageRequest{
|
||||
BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
|
||||
}
|
||||
}
|
||||
|
||||
// AccessPackageRequest is request for AccessPackage
|
||||
type AccessPackageRequest struct{ BaseRequest }
|
||||
|
||||
// Get performs GET request for AccessPackage
|
||||
func (r *AccessPackageRequest) Get(ctx context.Context) (resObj *AccessPackage, err error) {
|
||||
var query string
|
||||
if r.query != nil {
|
||||
query = "?" + r.query.Encode()
|
||||
}
|
||||
err = r.JSONRequest(ctx, "GET", query, nil, &resObj)
|
||||
return
|
||||
}
|
||||
|
||||
// Update performs PATCH request for AccessPackage
|
||||
func (r *AccessPackageRequest) Update(ctx context.Context, reqObj *AccessPackage) error {
|
||||
return r.JSONRequest(ctx, "PATCH", "", reqObj, nil)
|
||||
}
|
||||
|
||||
// Delete performs DELETE request for AccessPackage
|
||||
func (r *AccessPackageRequest) Delete(ctx context.Context) error {
|
||||
return r.JSONRequest(ctx, "DELETE", "", nil, nil)
|
||||
}
|
||||
|
||||
// AccessPackageAssignmentPolicies returns request builder for AccessPackageAssignmentPolicy collection
|
||||
func (b *AccessPackageRequestBuilder) AccessPackageAssignmentPolicies() *AccessPackageAccessPackageAssignmentPoliciesCollectionRequestBuilder {
|
||||
bb := &AccessPackageAccessPackageAssignmentPoliciesCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
|
||||
bb.baseURL += "/accessPackageAssignmentPolicies"
|
||||
return bb
|
||||
}
|
||||
|
||||
// AccessPackageAccessPackageAssignmentPoliciesCollectionRequestBuilder is request builder for AccessPackageAssignmentPolicy collection
|
||||
type AccessPackageAccessPackageAssignmentPoliciesCollectionRequestBuilder struct{ BaseRequestBuilder }
|
||||
|
||||
// Request returns request for AccessPackageAssignmentPolicy collection
|
||||
func (b *AccessPackageAccessPackageAssignmentPoliciesCollectionRequestBuilder) Request() *AccessPackageAccessPackageAssignmentPoliciesCollectionRequest {
|
||||
return &AccessPackageAccessPackageAssignmentPoliciesCollectionRequest{
|
||||
BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
|
||||
}
|
||||
}
|
||||
|
||||
// ID returns request builder for AccessPackageAssignmentPolicy item
|
||||
func (b *AccessPackageAccessPackageAssignmentPoliciesCollectionRequestBuilder) ID(id string) *AccessPackageAssignmentPolicyRequestBuilder {
|
||||
bb := &AccessPackageAssignmentPolicyRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
|
||||
bb.baseURL += "/" + id
|
||||
return bb
|
||||
}
|
||||
|
||||
// AccessPackageAccessPackageAssignmentPoliciesCollectionRequest is request for AccessPackageAssignmentPolicy collection
|
||||
type AccessPackageAccessPackageAssignmentPoliciesCollectionRequest struct{ BaseRequest }
|
||||
|
||||
// Paging perfoms paging operation for AccessPackageAssignmentPolicy collection
|
||||
func (r *AccessPackageAccessPackageAssignmentPoliciesCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}) ([]AccessPackageAssignmentPolicy, error) {
|
||||
req, err := r.NewJSONRequest(method, path, obj)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if ctx != nil {
|
||||
req = req.WithContext(ctx)
|
||||
}
|
||||
res, err := r.client.Do(req)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
var values []AccessPackageAssignmentPolicy
|
||||
for {
|
||||
defer res.Body.Close()
|
||||
if res.StatusCode != http.StatusOK {
|
||||
b, _ := ioutil.ReadAll(res.Body)
|
||||
errRes := &ErrorResponse{Response: res}
|
||||
err := jsonx.Unmarshal(b, errRes)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("%s: %s", res.Status, string(b))
|
||||
}
|
||||
return nil, errRes
|
||||
}
|
||||
var (
|
||||
paging Paging
|
||||
value []AccessPackageAssignmentPolicy
|
||||
)
|
||||
err := jsonx.NewDecoder(res.Body).Decode(&paging)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
err = jsonx.Unmarshal(paging.Value, &value)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
values = append(values, value...)
|
||||
if len(paging.NextLink) == 0 {
|
||||
return values, nil
|
||||
}
|
||||
req, err = http.NewRequest("GET", paging.NextLink, nil)
|
||||
if ctx != nil {
|
||||
req = req.WithContext(ctx)
|
||||
}
|
||||
res, err = r.client.Do(req)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Get performs GET request for AccessPackageAssignmentPolicy collection
|
||||
func (r *AccessPackageAccessPackageAssignmentPoliciesCollectionRequest) Get(ctx context.Context) ([]AccessPackageAssignmentPolicy, error) {
|
||||
var query string
|
||||
if r.query != nil {
|
||||
query = "?" + r.query.Encode()
|
||||
}
|
||||
return r.Paging(ctx, "GET", query, nil)
|
||||
}
|
||||
|
||||
// Add performs POST request for AccessPackageAssignmentPolicy collection
|
||||
func (r *AccessPackageAccessPackageAssignmentPoliciesCollectionRequest) Add(ctx context.Context, reqObj *AccessPackageAssignmentPolicy) (resObj *AccessPackageAssignmentPolicy, err error) {
|
||||
err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
|
||||
return
|
||||
}
|
||||
|
||||
// AccessPackageCatalog is navigation property
|
||||
func (b *AccessPackageRequestBuilder) AccessPackageCatalog() *AccessPackageCatalogRequestBuilder {
|
||||
bb := &AccessPackageCatalogRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
|
||||
bb.baseURL += "/accessPackageCatalog"
|
||||
return bb
|
||||
}
|
||||
|
||||
// AccessPackageResourceRoleScopes returns request builder for AccessPackageResourceRoleScope collection
|
||||
func (b *AccessPackageRequestBuilder) AccessPackageResourceRoleScopes() *AccessPackageAccessPackageResourceRoleScopesCollectionRequestBuilder {
|
||||
bb := &AccessPackageAccessPackageResourceRoleScopesCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
|
||||
bb.baseURL += "/accessPackageResourceRoleScopes"
|
||||
return bb
|
||||
}
|
||||
|
||||
// AccessPackageAccessPackageResourceRoleScopesCollectionRequestBuilder is request builder for AccessPackageResourceRoleScope collection
|
||||
type AccessPackageAccessPackageResourceRoleScopesCollectionRequestBuilder struct{ BaseRequestBuilder }
|
||||
|
||||
// Request returns request for AccessPackageResourceRoleScope collection
|
||||
func (b *AccessPackageAccessPackageResourceRoleScopesCollectionRequestBuilder) Request() *AccessPackageAccessPackageResourceRoleScopesCollectionRequest {
|
||||
return &AccessPackageAccessPackageResourceRoleScopesCollectionRequest{
|
||||
BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
|
||||
}
|
||||
}
|
||||
|
||||
// ID returns request builder for AccessPackageResourceRoleScope item
|
||||
func (b *AccessPackageAccessPackageResourceRoleScopesCollectionRequestBuilder) ID(id string) *AccessPackageResourceRoleScopeRequestBuilder {
|
||||
bb := &AccessPackageResourceRoleScopeRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
|
||||
bb.baseURL += "/" + id
|
||||
return bb
|
||||
}
|
||||
|
||||
// AccessPackageAccessPackageResourceRoleScopesCollectionRequest is request for AccessPackageResourceRoleScope collection
|
||||
type AccessPackageAccessPackageResourceRoleScopesCollectionRequest struct{ BaseRequest }
|
||||
|
||||
// Paging perfoms paging operation for AccessPackageResourceRoleScope collection
|
||||
func (r *AccessPackageAccessPackageResourceRoleScopesCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}) ([]AccessPackageResourceRoleScope, error) {
|
||||
req, err := r.NewJSONRequest(method, path, obj)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if ctx != nil {
|
||||
req = req.WithContext(ctx)
|
||||
}
|
||||
res, err := r.client.Do(req)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
var values []AccessPackageResourceRoleScope
|
||||
for {
|
||||
defer res.Body.Close()
|
||||
if res.StatusCode != http.StatusOK {
|
||||
b, _ := ioutil.ReadAll(res.Body)
|
||||
errRes := &ErrorResponse{Response: res}
|
||||
err := jsonx.Unmarshal(b, errRes)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("%s: %s", res.Status, string(b))
|
||||
}
|
||||
return nil, errRes
|
||||
}
|
||||
var (
|
||||
paging Paging
|
||||
value []AccessPackageResourceRoleScope
|
||||
)
|
||||
err := jsonx.NewDecoder(res.Body).Decode(&paging)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
err = jsonx.Unmarshal(paging.Value, &value)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
values = append(values, value...)
|
||||
if len(paging.NextLink) == 0 {
|
||||
return values, nil
|
||||
}
|
||||
req, err = http.NewRequest("GET", paging.NextLink, nil)
|
||||
if ctx != nil {
|
||||
req = req.WithContext(ctx)
|
||||
}
|
||||
res, err = r.client.Do(req)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Get performs GET request for AccessPackageResourceRoleScope collection
|
||||
func (r *AccessPackageAccessPackageResourceRoleScopesCollectionRequest) Get(ctx context.Context) ([]AccessPackageResourceRoleScope, error) {
|
||||
var query string
|
||||
if r.query != nil {
|
||||
query = "?" + r.query.Encode()
|
||||
}
|
||||
return r.Paging(ctx, "GET", query, nil)
|
||||
}
|
||||
|
||||
// Add performs POST request for AccessPackageResourceRoleScope collection
|
||||
func (r *AccessPackageAccessPackageResourceRoleScopesCollectionRequest) Add(ctx context.Context, reqObj *AccessPackageResourceRoleScope) (resObj *AccessPackageResourceRoleScope, err error) {
|
||||
err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
|
||||
return
|
||||
}
|
33
vendor/github.com/matterbridge/msgraph.go/beta/AccessPackageResourceModel.go
generated
vendored
33
vendor/github.com/matterbridge/msgraph.go/beta/AccessPackageResourceModel.go
generated
vendored
@@ -1,33 +0,0 @@
|
||||
// Code generated by msgraph-generate.go DO NOT EDIT.
|
||||
|
||||
package msgraph
|
||||
|
||||
import "time"
|
||||
|
||||
// AccessPackageResource undocumented
|
||||
type AccessPackageResource struct {
|
||||
// Entity is the base model of AccessPackageResource
|
||||
Entity
|
||||
// DisplayName undocumented
|
||||
DisplayName *string `json:"displayName,omitempty"`
|
||||
// Description undocumented
|
||||
Description *string `json:"description,omitempty"`
|
||||
// URL undocumented
|
||||
URL *string `json:"url,omitempty"`
|
||||
// ResourceType undocumented
|
||||
ResourceType *string `json:"resourceType,omitempty"`
|
||||
// OriginID undocumented
|
||||
OriginID *string `json:"originId,omitempty"`
|
||||
// OriginSystem undocumented
|
||||
OriginSystem *string `json:"originSystem,omitempty"`
|
||||
// IsPendingOnboarding undocumented
|
||||
IsPendingOnboarding *bool `json:"isPendingOnboarding,omitempty"`
|
||||
// AddedBy undocumented
|
||||
AddedBy *string `json:"addedBy,omitempty"`
|
||||
// AddedOn undocumented
|
||||
AddedOn *time.Time `json:"addedOn,omitempty"`
|
||||
// AccessPackageResourceScopes undocumented
|
||||
AccessPackageResourceScopes []AccessPackageResourceScope `json:"accessPackageResourceScopes,omitempty"`
|
||||
// AccessPackageResourceRoles undocumented
|
||||
AccessPackageResourceRoles []AccessPackageResourceRole `json:"accessPackageResourceRoles,omitempty"`
|
||||
}
|
233
vendor/github.com/matterbridge/msgraph.go/beta/AccessPackageResourceRequest.go
generated
vendored
233
vendor/github.com/matterbridge/msgraph.go/beta/AccessPackageResourceRequest.go
generated
vendored
@@ -1,233 +0,0 @@
|
||||
// Code generated by msgraph-generate.go DO NOT EDIT.
|
||||
|
||||
package msgraph
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"net/http"
|
||||
|
||||
"github.com/matterbridge/msgraph.go/jsonx"
|
||||
)
|
||||
|
||||
// AccessPackageResourceRequestBuilder is request builder for AccessPackageResource
|
||||
type AccessPackageResourceRequestBuilder struct{ BaseRequestBuilder }
|
||||
|
||||
// Request returns AccessPackageResourceRequest
|
||||
func (b *AccessPackageResourceRequestBuilder) Request() *AccessPackageResourceRequest {
|
||||
return &AccessPackageResourceRequest{
|
||||
BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
|
||||
}
|
||||
}
|
||||
|
||||
// AccessPackageResourceRequest is request for AccessPackageResource
|
||||
type AccessPackageResourceRequest struct{ BaseRequest }
|
||||
|
||||
// Get performs GET request for AccessPackageResource
|
||||
func (r *AccessPackageResourceRequest) Get(ctx context.Context) (resObj *AccessPackageResource, err error) {
|
||||
var query string
|
||||
if r.query != nil {
|
||||
query = "?" + r.query.Encode()
|
||||
}
|
||||
err = r.JSONRequest(ctx, "GET", query, nil, &resObj)
|
||||
return
|
||||
}
|
||||
|
||||
// Update performs PATCH request for AccessPackageResource
|
||||
func (r *AccessPackageResourceRequest) Update(ctx context.Context, reqObj *AccessPackageResource) error {
|
||||
return r.JSONRequest(ctx, "PATCH", "", reqObj, nil)
|
||||
}
|
||||
|
||||
// Delete performs DELETE request for AccessPackageResource
|
||||
func (r *AccessPackageResourceRequest) Delete(ctx context.Context) error {
|
||||
return r.JSONRequest(ctx, "DELETE", "", nil, nil)
|
||||
}
|
||||
|
||||
// AccessPackageResourceRoles returns request builder for AccessPackageResourceRole collection
|
||||
func (b *AccessPackageResourceRequestBuilder) AccessPackageResourceRoles() *AccessPackageResourceAccessPackageResourceRolesCollectionRequestBuilder {
|
||||
bb := &AccessPackageResourceAccessPackageResourceRolesCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
|
||||
bb.baseURL += "/accessPackageResourceRoles"
|
||||
return bb
|
||||
}
|
||||
|
||||
// AccessPackageResourceAccessPackageResourceRolesCollectionRequestBuilder is request builder for AccessPackageResourceRole collection
|
||||
type AccessPackageResourceAccessPackageResourceRolesCollectionRequestBuilder struct{ BaseRequestBuilder }
|
||||
|
||||
// Request returns request for AccessPackageResourceRole collection
|
||||
func (b *AccessPackageResourceAccessPackageResourceRolesCollectionRequestBuilder) Request() *AccessPackageResourceAccessPackageResourceRolesCollectionRequest {
|
||||
return &AccessPackageResourceAccessPackageResourceRolesCollectionRequest{
|
||||
BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
|
||||
}
|
||||
}
|
||||
|
||||
// ID returns request builder for AccessPackageResourceRole item
|
||||
func (b *AccessPackageResourceAccessPackageResourceRolesCollectionRequestBuilder) ID(id string) *AccessPackageResourceRoleRequestBuilder {
|
||||
bb := &AccessPackageResourceRoleRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
|
||||
bb.baseURL += "/" + id
|
||||
return bb
|
||||
}
|
||||
|
||||
// AccessPackageResourceAccessPackageResourceRolesCollectionRequest is request for AccessPackageResourceRole collection
|
||||
type AccessPackageResourceAccessPackageResourceRolesCollectionRequest struct{ BaseRequest }
|
||||
|
||||
// Paging perfoms paging operation for AccessPackageResourceRole collection
|
||||
func (r *AccessPackageResourceAccessPackageResourceRolesCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}) ([]AccessPackageResourceRole, error) {
|
||||
req, err := r.NewJSONRequest(method, path, obj)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if ctx != nil {
|
||||
req = req.WithContext(ctx)
|
||||
}
|
||||
res, err := r.client.Do(req)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
var values []AccessPackageResourceRole
|
||||
for {
|
||||
defer res.Body.Close()
|
||||
if res.StatusCode != http.StatusOK {
|
||||
b, _ := ioutil.ReadAll(res.Body)
|
||||
errRes := &ErrorResponse{Response: res}
|
||||
err := jsonx.Unmarshal(b, errRes)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("%s: %s", res.Status, string(b))
|
||||
}
|
||||
return nil, errRes
|
||||
}
|
||||
var (
|
||||
paging Paging
|
||||
value []AccessPackageResourceRole
|
||||
)
|
||||
err := jsonx.NewDecoder(res.Body).Decode(&paging)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
err = jsonx.Unmarshal(paging.Value, &value)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
values = append(values, value...)
|
||||
if len(paging.NextLink) == 0 {
|
||||
return values, nil
|
||||
}
|
||||
req, err = http.NewRequest("GET", paging.NextLink, nil)
|
||||
if ctx != nil {
|
||||
req = req.WithContext(ctx)
|
||||
}
|
||||
res, err = r.client.Do(req)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Get performs GET request for AccessPackageResourceRole collection
|
||||
func (r *AccessPackageResourceAccessPackageResourceRolesCollectionRequest) Get(ctx context.Context) ([]AccessPackageResourceRole, error) {
|
||||
var query string
|
||||
if r.query != nil {
|
||||
query = "?" + r.query.Encode()
|
||||
}
|
||||
return r.Paging(ctx, "GET", query, nil)
|
||||
}
|
||||
|
||||
// Add performs POST request for AccessPackageResourceRole collection
|
||||
func (r *AccessPackageResourceAccessPackageResourceRolesCollectionRequest) Add(ctx context.Context, reqObj *AccessPackageResourceRole) (resObj *AccessPackageResourceRole, err error) {
|
||||
err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
|
||||
return
|
||||
}
|
||||
|
||||
// AccessPackageResourceScopes returns request builder for AccessPackageResourceScope collection
|
||||
func (b *AccessPackageResourceRequestBuilder) AccessPackageResourceScopes() *AccessPackageResourceAccessPackageResourceScopesCollectionRequestBuilder {
|
||||
bb := &AccessPackageResourceAccessPackageResourceScopesCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
|
||||
bb.baseURL += "/accessPackageResourceScopes"
|
||||
return bb
|
||||
}
|
||||
|
||||
// AccessPackageResourceAccessPackageResourceScopesCollectionRequestBuilder is request builder for AccessPackageResourceScope collection
|
||||
type AccessPackageResourceAccessPackageResourceScopesCollectionRequestBuilder struct{ BaseRequestBuilder }
|
||||
|
||||
// Request returns request for AccessPackageResourceScope collection
|
||||
func (b *AccessPackageResourceAccessPackageResourceScopesCollectionRequestBuilder) Request() *AccessPackageResourceAccessPackageResourceScopesCollectionRequest {
|
||||
return &AccessPackageResourceAccessPackageResourceScopesCollectionRequest{
|
||||
BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
|
||||
}
|
||||
}
|
||||
|
||||
// ID returns request builder for AccessPackageResourceScope item
|
||||
func (b *AccessPackageResourceAccessPackageResourceScopesCollectionRequestBuilder) ID(id string) *AccessPackageResourceScopeRequestBuilder {
|
||||
bb := &AccessPackageResourceScopeRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
|
||||
bb.baseURL += "/" + id
|
||||
return bb
|
||||
}
|
||||
|
||||
// AccessPackageResourceAccessPackageResourceScopesCollectionRequest is request for AccessPackageResourceScope collection
|
||||
type AccessPackageResourceAccessPackageResourceScopesCollectionRequest struct{ BaseRequest }
|
||||
|
||||
// Paging perfoms paging operation for AccessPackageResourceScope collection
|
||||
func (r *AccessPackageResourceAccessPackageResourceScopesCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}) ([]AccessPackageResourceScope, error) {
|
||||
req, err := r.NewJSONRequest(method, path, obj)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if ctx != nil {
|
||||
req = req.WithContext(ctx)
|
||||
}
|
||||
res, err := r.client.Do(req)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
var values []AccessPackageResourceScope
|
||||
for {
|
||||
defer res.Body.Close()
|
||||
if res.StatusCode != http.StatusOK {
|
||||
b, _ := ioutil.ReadAll(res.Body)
|
||||
errRes := &ErrorResponse{Response: res}
|
||||
err := jsonx.Unmarshal(b, errRes)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("%s: %s", res.Status, string(b))
|
||||
}
|
||||
return nil, errRes
|
||||
}
|
||||
var (
|
||||
paging Paging
|
||||
value []AccessPackageResourceScope
|
||||
)
|
||||
err := jsonx.NewDecoder(res.Body).Decode(&paging)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
err = jsonx.Unmarshal(paging.Value, &value)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
values = append(values, value...)
|
||||
if len(paging.NextLink) == 0 {
|
||||
return values, nil
|
||||
}
|
||||
req, err = http.NewRequest("GET", paging.NextLink, nil)
|
||||
if ctx != nil {
|
||||
req = req.WithContext(ctx)
|
||||
}
|
||||
res, err = r.client.Do(req)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Get performs GET request for AccessPackageResourceScope collection
|
||||
func (r *AccessPackageResourceAccessPackageResourceScopesCollectionRequest) Get(ctx context.Context) ([]AccessPackageResourceScope, error) {
|
||||
var query string
|
||||
if r.query != nil {
|
||||
query = "?" + r.query.Encode()
|
||||
}
|
||||
return r.Paging(ctx, "GET", query, nil)
|
||||
}
|
||||
|
||||
// Add performs POST request for AccessPackageResourceScope collection
|
||||
func (r *AccessPackageResourceAccessPackageResourceScopesCollectionRequest) Add(ctx context.Context, reqObj *AccessPackageResourceScope) (resObj *AccessPackageResourceScope, err error) {
|
||||
err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
|
||||
return
|
||||
}
|
@@ -1,31 +0,0 @@
|
||||
// Code generated by msgraph-generate.go DO NOT EDIT.
|
||||
|
||||
package msgraph
|
||||
|
||||
import "time"
|
||||
|
||||
// AccessPackageResourceRequestObject undocumented
|
||||
type AccessPackageResourceRequestObject struct {
|
||||
// Entity is the base model of AccessPackageResourceRequestObject
|
||||
Entity
|
||||
// CatalogID undocumented
|
||||
CatalogID *string `json:"catalogId,omitempty"`
|
||||
// ExecuteImmediately undocumented
|
||||
ExecuteImmediately *bool `json:"executeImmediately,omitempty"`
|
||||
// IsValidationOnly undocumented
|
||||
IsValidationOnly *bool `json:"isValidationOnly,omitempty"`
|
||||
// RequestType undocumented
|
||||
RequestType *string `json:"requestType,omitempty"`
|
||||
// RequestState undocumented
|
||||
RequestState *string `json:"requestState,omitempty"`
|
||||
// RequestStatus undocumented
|
||||
RequestStatus *string `json:"requestStatus,omitempty"`
|
||||
// Justification undocumented
|
||||
Justification *string `json:"justification,omitempty"`
|
||||
// ExpirationDateTime undocumented
|
||||
ExpirationDateTime *time.Time `json:"expirationDateTime,omitempty"`
|
||||
// AccessPackageResource undocumented
|
||||
AccessPackageResource *AccessPackageResource `json:"accessPackageResource,omitempty"`
|
||||
// Requestor undocumented
|
||||
Requestor *AccessPackageSubject `json:"requestor,omitempty"`
|
||||
}
|
@@ -1,52 +0,0 @@
|
||||
// Code generated by msgraph-generate.go DO NOT EDIT.
|
||||
|
||||
package msgraph
|
||||
|
||||
import "context"
|
||||
|
||||
// AccessPackageResourceRequestObjectRequestBuilder is request builder for AccessPackageResourceRequestObject
|
||||
type AccessPackageResourceRequestObjectRequestBuilder struct{ BaseRequestBuilder }
|
||||
|
||||
// Request returns AccessPackageResourceRequestObjectRequest
|
||||
func (b *AccessPackageResourceRequestObjectRequestBuilder) Request() *AccessPackageResourceRequestObjectRequest {
|
||||
return &AccessPackageResourceRequestObjectRequest{
|
||||
BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
|
||||
}
|
||||
}
|
||||
|
||||
// AccessPackageResourceRequestObjectRequest is request for AccessPackageResourceRequestObject
|
||||
type AccessPackageResourceRequestObjectRequest struct{ BaseRequest }
|
||||
|
||||
// Get performs GET request for AccessPackageResourceRequestObject
|
||||
func (r *AccessPackageResourceRequestObjectRequest) Get(ctx context.Context) (resObj *AccessPackageResourceRequestObject, err error) {
|
||||
var query string
|
||||
if r.query != nil {
|
||||
query = "?" + r.query.Encode()
|
||||
}
|
||||
err = r.JSONRequest(ctx, "GET", query, nil, &resObj)
|
||||
return
|
||||
}
|
||||
|
||||
// Update performs PATCH request for AccessPackageResourceRequestObject
|
||||
func (r *AccessPackageResourceRequestObjectRequest) Update(ctx context.Context, reqObj *AccessPackageResourceRequestObject) error {
|
||||
return r.JSONRequest(ctx, "PATCH", "", reqObj, nil)
|
||||
}
|
||||
|
||||
// Delete performs DELETE request for AccessPackageResourceRequestObject
|
||||
func (r *AccessPackageResourceRequestObjectRequest) Delete(ctx context.Context) error {
|
||||
return r.JSONRequest(ctx, "DELETE", "", nil, nil)
|
||||
}
|
||||
|
||||
// AccessPackageResource is navigation property
|
||||
func (b *AccessPackageResourceRequestObjectRequestBuilder) AccessPackageResource() *AccessPackageResourceRequestBuilder {
|
||||
bb := &AccessPackageResourceRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
|
||||
bb.baseURL += "/accessPackageResource"
|
||||
return bb
|
||||
}
|
||||
|
||||
// Requestor is navigation property
|
||||
func (b *AccessPackageResourceRequestObjectRequestBuilder) Requestor() *AccessPackageSubjectRequestBuilder {
|
||||
bb := &AccessPackageSubjectRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
|
||||
bb.baseURL += "/requestor"
|
||||
return bb
|
||||
}
|
19
vendor/github.com/matterbridge/msgraph.go/beta/AccessPackageResourceRoleModel.go
generated
vendored
19
vendor/github.com/matterbridge/msgraph.go/beta/AccessPackageResourceRoleModel.go
generated
vendored
@@ -1,19 +0,0 @@
|
||||
// Code generated by msgraph-generate.go DO NOT EDIT.
|
||||
|
||||
package msgraph
|
||||
|
||||
// AccessPackageResourceRole undocumented
|
||||
type AccessPackageResourceRole struct {
|
||||
// Entity is the base model of AccessPackageResourceRole
|
||||
Entity
|
||||
// DisplayName undocumented
|
||||
DisplayName *string `json:"displayName,omitempty"`
|
||||
// Description undocumented
|
||||
Description *string `json:"description,omitempty"`
|
||||
// OriginID undocumented
|
||||
OriginID *string `json:"originId,omitempty"`
|
||||
// OriginSystem undocumented
|
||||
OriginSystem *string `json:"originSystem,omitempty"`
|
||||
// AccessPackageResource undocumented
|
||||
AccessPackageResource *AccessPackageResource `json:"accessPackageResource,omitempty"`
|
||||
}
|
45
vendor/github.com/matterbridge/msgraph.go/beta/AccessPackageResourceRoleRequest.go
generated
vendored
45
vendor/github.com/matterbridge/msgraph.go/beta/AccessPackageResourceRoleRequest.go
generated
vendored
@@ -1,45 +0,0 @@
|
||||
// Code generated by msgraph-generate.go DO NOT EDIT.
|
||||
|
||||
package msgraph
|
||||
|
||||
import "context"
|
||||
|
||||
// AccessPackageResourceRoleRequestBuilder is request builder for AccessPackageResourceRole
|
||||
type AccessPackageResourceRoleRequestBuilder struct{ BaseRequestBuilder }
|
||||
|
||||
// Request returns AccessPackageResourceRoleRequest
|
||||
func (b *AccessPackageResourceRoleRequestBuilder) Request() *AccessPackageResourceRoleRequest {
|
||||
return &AccessPackageResourceRoleRequest{
|
||||
BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
|
||||
}
|
||||
}
|
||||
|
||||
// AccessPackageResourceRoleRequest is request for AccessPackageResourceRole
|
||||
type AccessPackageResourceRoleRequest struct{ BaseRequest }
|
||||
|
||||
// Get performs GET request for AccessPackageResourceRole
|
||||
func (r *AccessPackageResourceRoleRequest) Get(ctx context.Context) (resObj *AccessPackageResourceRole, err error) {
|
||||
var query string
|
||||
if r.query != nil {
|
||||
query = "?" + r.query.Encode()
|
||||
}
|
||||
err = r.JSONRequest(ctx, "GET", query, nil, &resObj)
|
||||
return
|
||||
}
|
||||
|
||||
// Update performs PATCH request for AccessPackageResourceRole
|
||||
func (r *AccessPackageResourceRoleRequest) Update(ctx context.Context, reqObj *AccessPackageResourceRole) error {
|
||||
return r.JSONRequest(ctx, "PATCH", "", reqObj, nil)
|
||||
}
|
||||
|
||||
// Delete performs DELETE request for AccessPackageResourceRole
|
||||
func (r *AccessPackageResourceRoleRequest) Delete(ctx context.Context) error {
|
||||
return r.JSONRequest(ctx, "DELETE", "", nil, nil)
|
||||
}
|
||||
|
||||
// AccessPackageResource is navigation property
|
||||
func (b *AccessPackageResourceRoleRequestBuilder) AccessPackageResource() *AccessPackageResourceRequestBuilder {
|
||||
bb := &AccessPackageResourceRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
|
||||
bb.baseURL += "/accessPackageResource"
|
||||
return bb
|
||||
}
|
23
vendor/github.com/matterbridge/msgraph.go/beta/AccessPackageResourceRoleScopeModel.go
generated
vendored
23
vendor/github.com/matterbridge/msgraph.go/beta/AccessPackageResourceRoleScopeModel.go
generated
vendored
@@ -1,23 +0,0 @@
|
||||
// Code generated by msgraph-generate.go DO NOT EDIT.
|
||||
|
||||
package msgraph
|
||||
|
||||
import "time"
|
||||
|
||||
// AccessPackageResourceRoleScope undocumented
|
||||
type AccessPackageResourceRoleScope struct {
|
||||
// Entity is the base model of AccessPackageResourceRoleScope
|
||||
Entity
|
||||
// CreatedBy undocumented
|
||||
CreatedBy *string `json:"createdBy,omitempty"`
|
||||
// CreatedDateTime undocumented
|
||||
CreatedDateTime *time.Time `json:"createdDateTime,omitempty"`
|
||||
// ModifiedBy undocumented
|
||||
ModifiedBy *string `json:"modifiedBy,omitempty"`
|
||||
// ModifiedDateTime undocumented
|
||||
ModifiedDateTime *time.Time `json:"modifiedDateTime,omitempty"`
|
||||
// AccessPackageResourceRole undocumented
|
||||
AccessPackageResourceRole *AccessPackageResourceRole `json:"accessPackageResourceRole,omitempty"`
|
||||
// AccessPackageResourceScope undocumented
|
||||
AccessPackageResourceScope *AccessPackageResourceScope `json:"accessPackageResourceScope,omitempty"`
|
||||
}
|
52
vendor/github.com/matterbridge/msgraph.go/beta/AccessPackageResourceRoleScopeRequest.go
generated
vendored
52
vendor/github.com/matterbridge/msgraph.go/beta/AccessPackageResourceRoleScopeRequest.go
generated
vendored
@@ -1,52 +0,0 @@
|
||||
// Code generated by msgraph-generate.go DO NOT EDIT.
|
||||
|
||||
package msgraph
|
||||
|
||||
import "context"
|
||||
|
||||
// AccessPackageResourceRoleScopeRequestBuilder is request builder for AccessPackageResourceRoleScope
|
||||
type AccessPackageResourceRoleScopeRequestBuilder struct{ BaseRequestBuilder }
|
||||
|
||||
// Request returns AccessPackageResourceRoleScopeRequest
|
||||
func (b *AccessPackageResourceRoleScopeRequestBuilder) Request() *AccessPackageResourceRoleScopeRequest {
|
||||
return &AccessPackageResourceRoleScopeRequest{
|
||||
BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
|
||||
}
|
||||
}
|
||||
|
||||
// AccessPackageResourceRoleScopeRequest is request for AccessPackageResourceRoleScope
|
||||
type AccessPackageResourceRoleScopeRequest struct{ BaseRequest }
|
||||
|
||||
// Get performs GET request for AccessPackageResourceRoleScope
|
||||
func (r *AccessPackageResourceRoleScopeRequest) Get(ctx context.Context) (resObj *AccessPackageResourceRoleScope, err error) {
|
||||
var query string
|
||||
if r.query != nil {
|
||||
query = "?" + r.query.Encode()
|
||||
}
|
||||
err = r.JSONRequest(ctx, "GET", query, nil, &resObj)
|
||||
return
|
||||
}
|
||||
|
||||
// Update performs PATCH request for AccessPackageResourceRoleScope
|
||||
func (r *AccessPackageResourceRoleScopeRequest) Update(ctx context.Context, reqObj *AccessPackageResourceRoleScope) error {
|
||||
return r.JSONRequest(ctx, "PATCH", "", reqObj, nil)
|
||||
}
|
||||
|
||||
// Delete performs DELETE request for AccessPackageResourceRoleScope
|
||||
func (r *AccessPackageResourceRoleScopeRequest) Delete(ctx context.Context) error {
|
||||
return r.JSONRequest(ctx, "DELETE", "", nil, nil)
|
||||
}
|
||||
|
||||
// AccessPackageResourceRole is navigation property
|
||||
func (b *AccessPackageResourceRoleScopeRequestBuilder) AccessPackageResourceRole() *AccessPackageResourceRoleRequestBuilder {
|
||||
bb := &AccessPackageResourceRoleRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
|
||||
bb.baseURL += "/accessPackageResourceRole"
|
||||
return bb
|
||||
}
|
||||
|
||||
// AccessPackageResourceScope is navigation property
|
||||
func (b *AccessPackageResourceRoleScopeRequestBuilder) AccessPackageResourceScope() *AccessPackageResourceScopeRequestBuilder {
|
||||
bb := &AccessPackageResourceScopeRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
|
||||
bb.baseURL += "/accessPackageResourceScope"
|
||||
return bb
|
||||
}
|
25
vendor/github.com/matterbridge/msgraph.go/beta/AccessPackageResourceScopeModel.go
generated
vendored
25
vendor/github.com/matterbridge/msgraph.go/beta/AccessPackageResourceScopeModel.go
generated
vendored
@@ -1,25 +0,0 @@
|
||||
// Code generated by msgraph-generate.go DO NOT EDIT.
|
||||
|
||||
package msgraph
|
||||
|
||||
// AccessPackageResourceScope undocumented
|
||||
type AccessPackageResourceScope struct {
|
||||
// Entity is the base model of AccessPackageResourceScope
|
||||
Entity
|
||||
// DisplayName undocumented
|
||||
DisplayName *string `json:"displayName,omitempty"`
|
||||
// Description undocumented
|
||||
Description *string `json:"description,omitempty"`
|
||||
// OriginID undocumented
|
||||
OriginID *string `json:"originId,omitempty"`
|
||||
// OriginSystem undocumented
|
||||
OriginSystem *string `json:"originSystem,omitempty"`
|
||||
// RoleOriginID undocumented
|
||||
RoleOriginID *string `json:"roleOriginId,omitempty"`
|
||||
// IsRootScope undocumented
|
||||
IsRootScope *bool `json:"isRootScope,omitempty"`
|
||||
// URL undocumented
|
||||
URL *string `json:"url,omitempty"`
|
||||
// AccessPackageResource undocumented
|
||||
AccessPackageResource *AccessPackageResource `json:"accessPackageResource,omitempty"`
|
||||
}
|
45
vendor/github.com/matterbridge/msgraph.go/beta/AccessPackageResourceScopeRequest.go
generated
vendored
45
vendor/github.com/matterbridge/msgraph.go/beta/AccessPackageResourceScopeRequest.go
generated
vendored
@@ -1,45 +0,0 @@
|
||||
// Code generated by msgraph-generate.go DO NOT EDIT.
|
||||
|
||||
package msgraph
|
||||
|
||||
import "context"
|
||||
|
||||
// AccessPackageResourceScopeRequestBuilder is request builder for AccessPackageResourceScope
|
||||
type AccessPackageResourceScopeRequestBuilder struct{ BaseRequestBuilder }
|
||||
|
||||
// Request returns AccessPackageResourceScopeRequest
|
||||
func (b *AccessPackageResourceScopeRequestBuilder) Request() *AccessPackageResourceScopeRequest {
|
||||
return &AccessPackageResourceScopeRequest{
|
||||
BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
|
||||
}
|
||||
}
|
||||
|
||||
// AccessPackageResourceScopeRequest is request for AccessPackageResourceScope
|
||||
type AccessPackageResourceScopeRequest struct{ BaseRequest }
|
||||
|
||||
// Get performs GET request for AccessPackageResourceScope
|
||||
func (r *AccessPackageResourceScopeRequest) Get(ctx context.Context) (resObj *AccessPackageResourceScope, err error) {
|
||||
var query string
|
||||
if r.query != nil {
|
||||
query = "?" + r.query.Encode()
|
||||
}
|
||||
err = r.JSONRequest(ctx, "GET", query, nil, &resObj)
|
||||
return
|
||||
}
|
||||
|
||||
// Update performs PATCH request for AccessPackageResourceScope
|
||||
func (r *AccessPackageResourceScopeRequest) Update(ctx context.Context, reqObj *AccessPackageResourceScope) error {
|
||||
return r.JSONRequest(ctx, "PATCH", "", reqObj, nil)
|
||||
}
|
||||
|
||||
// Delete performs DELETE request for AccessPackageResourceScope
|
||||
func (r *AccessPackageResourceScopeRequest) Delete(ctx context.Context) error {
|
||||
return r.JSONRequest(ctx, "DELETE", "", nil, nil)
|
||||
}
|
||||
|
||||
// AccessPackageResource is navigation property
|
||||
func (b *AccessPackageResourceScopeRequestBuilder) AccessPackageResource() *AccessPackageResourceRequestBuilder {
|
||||
bb := &AccessPackageResourceRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
|
||||
bb.baseURL += "/accessPackageResource"
|
||||
return bb
|
||||
}
|
23
vendor/github.com/matterbridge/msgraph.go/beta/AccessPackageSubjectModel.go
generated
vendored
23
vendor/github.com/matterbridge/msgraph.go/beta/AccessPackageSubjectModel.go
generated
vendored
@@ -1,23 +0,0 @@
|
||||
// Code generated by msgraph-generate.go DO NOT EDIT.
|
||||
|
||||
package msgraph
|
||||
|
||||
// AccessPackageSubject undocumented
|
||||
type AccessPackageSubject struct {
|
||||
// Entity is the base model of AccessPackageSubject
|
||||
Entity
|
||||
// ObjectID undocumented
|
||||
ObjectID *string `json:"objectId,omitempty"`
|
||||
// AltSecID undocumented
|
||||
AltSecID *string `json:"altSecId,omitempty"`
|
||||
// DisplayName undocumented
|
||||
DisplayName *string `json:"displayName,omitempty"`
|
||||
// PrincipalName undocumented
|
||||
PrincipalName *string `json:"principalName,omitempty"`
|
||||
// Email undocumented
|
||||
Email *string `json:"email,omitempty"`
|
||||
// OnPremisesSecurityIdentifier undocumented
|
||||
OnPremisesSecurityIdentifier *string `json:"onPremisesSecurityIdentifier,omitempty"`
|
||||
// Type undocumented
|
||||
Type *string `json:"type,omitempty"`
|
||||
}
|
38
vendor/github.com/matterbridge/msgraph.go/beta/AccessPackageSubjectRequest.go
generated
vendored
38
vendor/github.com/matterbridge/msgraph.go/beta/AccessPackageSubjectRequest.go
generated
vendored
@@ -1,38 +0,0 @@
|
||||
// Code generated by msgraph-generate.go DO NOT EDIT.
|
||||
|
||||
package msgraph
|
||||
|
||||
import "context"
|
||||
|
||||
// AccessPackageSubjectRequestBuilder is request builder for AccessPackageSubject
|
||||
type AccessPackageSubjectRequestBuilder struct{ BaseRequestBuilder }
|
||||
|
||||
// Request returns AccessPackageSubjectRequest
|
||||
func (b *AccessPackageSubjectRequestBuilder) Request() *AccessPackageSubjectRequest {
|
||||
return &AccessPackageSubjectRequest{
|
||||
BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
|
||||
}
|
||||
}
|
||||
|
||||
// AccessPackageSubjectRequest is request for AccessPackageSubject
|
||||
type AccessPackageSubjectRequest struct{ BaseRequest }
|
||||
|
||||
// Get performs GET request for AccessPackageSubject
|
||||
func (r *AccessPackageSubjectRequest) Get(ctx context.Context) (resObj *AccessPackageSubject, err error) {
|
||||
var query string
|
||||
if r.query != nil {
|
||||
query = "?" + r.query.Encode()
|
||||
}
|
||||
err = r.JSONRequest(ctx, "GET", query, nil, &resObj)
|
||||
return
|
||||
}
|
||||
|
||||
// Update performs PATCH request for AccessPackageSubject
|
||||
func (r *AccessPackageSubjectRequest) Update(ctx context.Context, reqObj *AccessPackageSubject) error {
|
||||
return r.JSONRequest(ctx, "PATCH", "", reqObj, nil)
|
||||
}
|
||||
|
||||
// Delete performs DELETE request for AccessPackageSubject
|
||||
func (r *AccessPackageSubjectRequest) Delete(ctx context.Context) error {
|
||||
return r.JSONRequest(ctx, "DELETE", "", nil, nil)
|
||||
}
|
125
vendor/github.com/matterbridge/msgraph.go/beta/AccessReviewAction.go
generated
vendored
125
vendor/github.com/matterbridge/msgraph.go/beta/AccessReviewAction.go
generated
vendored
@@ -1,125 +0,0 @@
|
||||
// Code generated by msgraph-generate.go DO NOT EDIT.
|
||||
|
||||
package msgraph
|
||||
|
||||
import "context"
|
||||
|
||||
// AccessReviewStopRequestParameter undocumented
|
||||
type AccessReviewStopRequestParameter struct {
|
||||
}
|
||||
|
||||
// AccessReviewSendReminderRequestParameter undocumented
|
||||
type AccessReviewSendReminderRequestParameter struct {
|
||||
}
|
||||
|
||||
// AccessReviewResetDecisionsRequestParameter undocumented
|
||||
type AccessReviewResetDecisionsRequestParameter struct {
|
||||
}
|
||||
|
||||
// AccessReviewApplyDecisionsRequestParameter undocumented
|
||||
type AccessReviewApplyDecisionsRequestParameter struct {
|
||||
}
|
||||
|
||||
//
|
||||
type AccessReviewStopRequestBuilder struct{ BaseRequestBuilder }
|
||||
|
||||
// Stop action undocumented
|
||||
func (b *AccessReviewRequestBuilder) Stop(reqObj *AccessReviewStopRequestParameter) *AccessReviewStopRequestBuilder {
|
||||
bb := &AccessReviewStopRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
|
||||
bb.BaseRequestBuilder.baseURL += "/stop"
|
||||
bb.BaseRequestBuilder.requestObject = reqObj
|
||||
return bb
|
||||
}
|
||||
|
||||
//
|
||||
type AccessReviewStopRequest struct{ BaseRequest }
|
||||
|
||||
//
|
||||
func (b *AccessReviewStopRequestBuilder) Request() *AccessReviewStopRequest {
|
||||
return &AccessReviewStopRequest{
|
||||
BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client, requestObject: b.requestObject},
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
func (r *AccessReviewStopRequest) Post(ctx context.Context) error {
|
||||
return r.JSONRequest(ctx, "POST", "", r.requestObject, nil)
|
||||
}
|
||||
|
||||
//
|
||||
type AccessReviewSendReminderRequestBuilder struct{ BaseRequestBuilder }
|
||||
|
||||
// SendReminder action undocumented
|
||||
func (b *AccessReviewRequestBuilder) SendReminder(reqObj *AccessReviewSendReminderRequestParameter) *AccessReviewSendReminderRequestBuilder {
|
||||
bb := &AccessReviewSendReminderRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
|
||||
bb.BaseRequestBuilder.baseURL += "/sendReminder"
|
||||
bb.BaseRequestBuilder.requestObject = reqObj
|
||||
return bb
|
||||
}
|
||||
|
||||
//
|
||||
type AccessReviewSendReminderRequest struct{ BaseRequest }
|
||||
|
||||
//
|
||||
func (b *AccessReviewSendReminderRequestBuilder) Request() *AccessReviewSendReminderRequest {
|
||||
return &AccessReviewSendReminderRequest{
|
||||
BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client, requestObject: b.requestObject},
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
func (r *AccessReviewSendReminderRequest) Post(ctx context.Context) error {
|
||||
return r.JSONRequest(ctx, "POST", "", r.requestObject, nil)
|
||||
}
|
||||
|
||||
//
|
||||
type AccessReviewResetDecisionsRequestBuilder struct{ BaseRequestBuilder }
|
||||
|
||||
// ResetDecisions action undocumented
|
||||
func (b *AccessReviewRequestBuilder) ResetDecisions(reqObj *AccessReviewResetDecisionsRequestParameter) *AccessReviewResetDecisionsRequestBuilder {
|
||||
bb := &AccessReviewResetDecisionsRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
|
||||
bb.BaseRequestBuilder.baseURL += "/resetDecisions"
|
||||
bb.BaseRequestBuilder.requestObject = reqObj
|
||||
return bb
|
||||
}
|
||||
|
||||
//
|
||||
type AccessReviewResetDecisionsRequest struct{ BaseRequest }
|
||||
|
||||
//
|
||||
func (b *AccessReviewResetDecisionsRequestBuilder) Request() *AccessReviewResetDecisionsRequest {
|
||||
return &AccessReviewResetDecisionsRequest{
|
||||
BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client, requestObject: b.requestObject},
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
func (r *AccessReviewResetDecisionsRequest) Post(ctx context.Context) error {
|
||||
return r.JSONRequest(ctx, "POST", "", r.requestObject, nil)
|
||||
}
|
||||
|
||||
//
|
||||
type AccessReviewApplyDecisionsRequestBuilder struct{ BaseRequestBuilder }
|
||||
|
||||
// ApplyDecisions action undocumented
|
||||
func (b *AccessReviewRequestBuilder) ApplyDecisions(reqObj *AccessReviewApplyDecisionsRequestParameter) *AccessReviewApplyDecisionsRequestBuilder {
|
||||
bb := &AccessReviewApplyDecisionsRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
|
||||
bb.BaseRequestBuilder.baseURL += "/applyDecisions"
|
||||
bb.BaseRequestBuilder.requestObject = reqObj
|
||||
return bb
|
||||
}
|
||||
|
||||
//
|
||||
type AccessReviewApplyDecisionsRequest struct{ BaseRequest }
|
||||
|
||||
//
|
||||
func (b *AccessReviewApplyDecisionsRequestBuilder) Request() *AccessReviewApplyDecisionsRequest {
|
||||
return &AccessReviewApplyDecisionsRequest{
|
||||
BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client, requestObject: b.requestObject},
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
func (r *AccessReviewApplyDecisionsRequest) Post(ctx context.Context) error {
|
||||
return r.JSONRequest(ctx, "POST", "", r.requestObject, nil)
|
||||
}
|
29
vendor/github.com/matterbridge/msgraph.go/beta/AccessReviewDecisionModel.go
generated
vendored
29
vendor/github.com/matterbridge/msgraph.go/beta/AccessReviewDecisionModel.go
generated
vendored
@@ -1,29 +0,0 @@
|
||||
// Code generated by msgraph-generate.go DO NOT EDIT.
|
||||
|
||||
package msgraph
|
||||
|
||||
import "time"
|
||||
|
||||
// AccessReviewDecision undocumented
|
||||
type AccessReviewDecision struct {
|
||||
// Entity is the base model of AccessReviewDecision
|
||||
Entity
|
||||
// AccessReviewID undocumented
|
||||
AccessReviewID *string `json:"accessReviewId,omitempty"`
|
||||
// ReviewedBy undocumented
|
||||
ReviewedBy *UserIdentity `json:"reviewedBy,omitempty"`
|
||||
// ReviewedDateTime undocumented
|
||||
ReviewedDateTime *time.Time `json:"reviewedDateTime,omitempty"`
|
||||
// ReviewResult undocumented
|
||||
ReviewResult *string `json:"reviewResult,omitempty"`
|
||||
// Justification undocumented
|
||||
Justification *string `json:"justification,omitempty"`
|
||||
// AppliedBy undocumented
|
||||
AppliedBy *UserIdentity `json:"appliedBy,omitempty"`
|
||||
// AppliedDateTime undocumented
|
||||
AppliedDateTime *time.Time `json:"appliedDateTime,omitempty"`
|
||||
// ApplyResult undocumented
|
||||
ApplyResult *string `json:"applyResult,omitempty"`
|
||||
// AccessRecommendation undocumented
|
||||
AccessRecommendation *string `json:"accessRecommendation,omitempty"`
|
||||
}
|
38
vendor/github.com/matterbridge/msgraph.go/beta/AccessReviewDecisionRequest.go
generated
vendored
38
vendor/github.com/matterbridge/msgraph.go/beta/AccessReviewDecisionRequest.go
generated
vendored
@@ -1,38 +0,0 @@
|
||||
// Code generated by msgraph-generate.go DO NOT EDIT.
|
||||
|
||||
package msgraph
|
||||
|
||||
import "context"
|
||||
|
||||
// AccessReviewDecisionRequestBuilder is request builder for AccessReviewDecision
|
||||
type AccessReviewDecisionRequestBuilder struct{ BaseRequestBuilder }
|
||||
|
||||
// Request returns AccessReviewDecisionRequest
|
||||
func (b *AccessReviewDecisionRequestBuilder) Request() *AccessReviewDecisionRequest {
|
||||
return &AccessReviewDecisionRequest{
|
||||
BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
|
||||
}
|
||||
}
|
||||
|
||||
// AccessReviewDecisionRequest is request for AccessReviewDecision
|
||||
type AccessReviewDecisionRequest struct{ BaseRequest }
|
||||
|
||||
// Get performs GET request for AccessReviewDecision
|
||||
func (r *AccessReviewDecisionRequest) Get(ctx context.Context) (resObj *AccessReviewDecision, err error) {
|
||||
var query string
|
||||
if r.query != nil {
|
||||
query = "?" + r.query.Encode()
|
||||
}
|
||||
err = r.JSONRequest(ctx, "GET", query, nil, &resObj)
|
||||
return
|
||||
}
|
||||
|
||||
// Update performs PATCH request for AccessReviewDecision
|
||||
func (r *AccessReviewDecisionRequest) Update(ctx context.Context, reqObj *AccessReviewDecision) error {
|
||||
return r.JSONRequest(ctx, "PATCH", "", reqObj, nil)
|
||||
}
|
||||
|
||||
// Delete performs DELETE request for AccessReviewDecision
|
||||
func (r *AccessReviewDecisionRequest) Delete(ctx context.Context) error {
|
||||
return r.JSONRequest(ctx, "DELETE", "", nil, nil)
|
||||
}
|
39
vendor/github.com/matterbridge/msgraph.go/beta/AccessReviewModel.go
generated
vendored
39
vendor/github.com/matterbridge/msgraph.go/beta/AccessReviewModel.go
generated
vendored
@@ -1,39 +0,0 @@
|
||||
// Code generated by msgraph-generate.go DO NOT EDIT.
|
||||
|
||||
package msgraph
|
||||
|
||||
import "time"
|
||||
|
||||
// AccessReview undocumented
|
||||
type AccessReview struct {
|
||||
// Entity is the base model of AccessReview
|
||||
Entity
|
||||
// DisplayName undocumented
|
||||
DisplayName *string `json:"displayName,omitempty"`
|
||||
// StartDateTime undocumented
|
||||
StartDateTime *time.Time `json:"startDateTime,omitempty"`
|
||||
// EndDateTime undocumented
|
||||
EndDateTime *time.Time `json:"endDateTime,omitempty"`
|
||||
// Status undocumented
|
||||
Status *string `json:"status,omitempty"`
|
||||
// CreatedBy undocumented
|
||||
CreatedBy *UserIdentity `json:"createdBy,omitempty"`
|
||||
// BusinessFlowTemplateID undocumented
|
||||
BusinessFlowTemplateID *string `json:"businessFlowTemplateId,omitempty"`
|
||||
// ReviewerType undocumented
|
||||
ReviewerType *string `json:"reviewerType,omitempty"`
|
||||
// Description undocumented
|
||||
Description *string `json:"description,omitempty"`
|
||||
// Settings undocumented
|
||||
Settings *AccessReviewSettings `json:"settings,omitempty"`
|
||||
// ReviewedEntity undocumented
|
||||
ReviewedEntity *Identity `json:"reviewedEntity,omitempty"`
|
||||
// Reviewers undocumented
|
||||
Reviewers []AccessReviewReviewer `json:"reviewers,omitempty"`
|
||||
// Decisions undocumented
|
||||
Decisions []AccessReviewDecision `json:"decisions,omitempty"`
|
||||
// MyDecisions undocumented
|
||||
MyDecisions []AccessReviewDecision `json:"myDecisions,omitempty"`
|
||||
// Instances undocumented
|
||||
Instances []AccessReview `json:"instances,omitempty"`
|
||||
}
|
17
vendor/github.com/matterbridge/msgraph.go/beta/AccessReviewRecurrenceSettingsModel.go
generated
vendored
17
vendor/github.com/matterbridge/msgraph.go/beta/AccessReviewRecurrenceSettingsModel.go
generated
vendored
@@ -1,17 +0,0 @@
|
||||
// Code generated by msgraph-generate.go DO NOT EDIT.
|
||||
|
||||
package msgraph
|
||||
|
||||
// AccessReviewRecurrenceSettings undocumented
|
||||
type AccessReviewRecurrenceSettings struct {
|
||||
// Object is the base model of AccessReviewRecurrenceSettings
|
||||
Object
|
||||
// RecurrenceType undocumented
|
||||
RecurrenceType *string `json:"recurrenceType,omitempty"`
|
||||
// RecurrenceEndType undocumented
|
||||
RecurrenceEndType *string `json:"recurrenceEndType,omitempty"`
|
||||
// DurationInDays undocumented
|
||||
DurationInDays *int `json:"durationInDays,omitempty"`
|
||||
// RecurrenceCount undocumented
|
||||
RecurrenceCount *int `json:"recurrenceCount,omitempty"`
|
||||
}
|
421
vendor/github.com/matterbridge/msgraph.go/beta/AccessReviewRequest.go
generated
vendored
421
vendor/github.com/matterbridge/msgraph.go/beta/AccessReviewRequest.go
generated
vendored
@@ -1,421 +0,0 @@
|
||||
// Code generated by msgraph-generate.go DO NOT EDIT.
|
||||
|
||||
package msgraph
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"net/http"
|
||||
|
||||
"github.com/matterbridge/msgraph.go/jsonx"
|
||||
)
|
||||
|
||||
// AccessReviewRequestBuilder is request builder for AccessReview
|
||||
type AccessReviewRequestBuilder struct{ BaseRequestBuilder }
|
||||
|
||||
// Request returns AccessReviewRequest
|
||||
func (b *AccessReviewRequestBuilder) Request() *AccessReviewRequest {
|
||||
return &AccessReviewRequest{
|
||||
BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
|
||||
}
|
||||
}
|
||||
|
||||
// AccessReviewRequest is request for AccessReview
|
||||
type AccessReviewRequest struct{ BaseRequest }
|
||||
|
||||
// Get performs GET request for AccessReview
|
||||
func (r *AccessReviewRequest) Get(ctx context.Context) (resObj *AccessReview, err error) {
|
||||
var query string
|
||||
if r.query != nil {
|
||||
query = "?" + r.query.Encode()
|
||||
}
|
||||
err = r.JSONRequest(ctx, "GET", query, nil, &resObj)
|
||||
return
|
||||
}
|
||||
|
||||
// Update performs PATCH request for AccessReview
|
||||
func (r *AccessReviewRequest) Update(ctx context.Context, reqObj *AccessReview) error {
|
||||
return r.JSONRequest(ctx, "PATCH", "", reqObj, nil)
|
||||
}
|
||||
|
||||
// Delete performs DELETE request for AccessReview
|
||||
func (r *AccessReviewRequest) Delete(ctx context.Context) error {
|
||||
return r.JSONRequest(ctx, "DELETE", "", nil, nil)
|
||||
}
|
||||
|
||||
// Decisions returns request builder for AccessReviewDecision collection
|
||||
func (b *AccessReviewRequestBuilder) Decisions() *AccessReviewDecisionsCollectionRequestBuilder {
|
||||
bb := &AccessReviewDecisionsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
|
||||
bb.baseURL += "/decisions"
|
||||
return bb
|
||||
}
|
||||
|
||||
// AccessReviewDecisionsCollectionRequestBuilder is request builder for AccessReviewDecision collection
|
||||
type AccessReviewDecisionsCollectionRequestBuilder struct{ BaseRequestBuilder }
|
||||
|
||||
// Request returns request for AccessReviewDecision collection
|
||||
func (b *AccessReviewDecisionsCollectionRequestBuilder) Request() *AccessReviewDecisionsCollectionRequest {
|
||||
return &AccessReviewDecisionsCollectionRequest{
|
||||
BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
|
||||
}
|
||||
}
|
||||
|
||||
// ID returns request builder for AccessReviewDecision item
|
||||
func (b *AccessReviewDecisionsCollectionRequestBuilder) ID(id string) *AccessReviewDecisionRequestBuilder {
|
||||
bb := &AccessReviewDecisionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
|
||||
bb.baseURL += "/" + id
|
||||
return bb
|
||||
}
|
||||
|
||||
// AccessReviewDecisionsCollectionRequest is request for AccessReviewDecision collection
|
||||
type AccessReviewDecisionsCollectionRequest struct{ BaseRequest }
|
||||
|
||||
// Paging perfoms paging operation for AccessReviewDecision collection
|
||||
func (r *AccessReviewDecisionsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}) ([]AccessReviewDecision, error) {
|
||||
req, err := r.NewJSONRequest(method, path, obj)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if ctx != nil {
|
||||
req = req.WithContext(ctx)
|
||||
}
|
||||
res, err := r.client.Do(req)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
var values []AccessReviewDecision
|
||||
for {
|
||||
defer res.Body.Close()
|
||||
if res.StatusCode != http.StatusOK {
|
||||
b, _ := ioutil.ReadAll(res.Body)
|
||||
errRes := &ErrorResponse{Response: res}
|
||||
err := jsonx.Unmarshal(b, errRes)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("%s: %s", res.Status, string(b))
|
||||
}
|
||||
return nil, errRes
|
||||
}
|
||||
var (
|
||||
paging Paging
|
||||
value []AccessReviewDecision
|
||||
)
|
||||
err := jsonx.NewDecoder(res.Body).Decode(&paging)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
err = jsonx.Unmarshal(paging.Value, &value)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
values = append(values, value...)
|
||||
if len(paging.NextLink) == 0 {
|
||||
return values, nil
|
||||
}
|
||||
req, err = http.NewRequest("GET", paging.NextLink, nil)
|
||||
if ctx != nil {
|
||||
req = req.WithContext(ctx)
|
||||
}
|
||||
res, err = r.client.Do(req)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Get performs GET request for AccessReviewDecision collection
|
||||
func (r *AccessReviewDecisionsCollectionRequest) Get(ctx context.Context) ([]AccessReviewDecision, error) {
|
||||
var query string
|
||||
if r.query != nil {
|
||||
query = "?" + r.query.Encode()
|
||||
}
|
||||
return r.Paging(ctx, "GET", query, nil)
|
||||
}
|
||||
|
||||
// Add performs POST request for AccessReviewDecision collection
|
||||
func (r *AccessReviewDecisionsCollectionRequest) Add(ctx context.Context, reqObj *AccessReviewDecision) (resObj *AccessReviewDecision, err error) {
|
||||
err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
|
||||
return
|
||||
}
|
||||
|
||||
// Instances returns request builder for AccessReview collection
|
||||
func (b *AccessReviewRequestBuilder) Instances() *AccessReviewInstancesCollectionRequestBuilder {
|
||||
bb := &AccessReviewInstancesCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
|
||||
bb.baseURL += "/instances"
|
||||
return bb
|
||||
}
|
||||
|
||||
// AccessReviewInstancesCollectionRequestBuilder is request builder for AccessReview collection
|
||||
type AccessReviewInstancesCollectionRequestBuilder struct{ BaseRequestBuilder }
|
||||
|
||||
// Request returns request for AccessReview collection
|
||||
func (b *AccessReviewInstancesCollectionRequestBuilder) Request() *AccessReviewInstancesCollectionRequest {
|
||||
return &AccessReviewInstancesCollectionRequest{
|
||||
BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
|
||||
}
|
||||
}
|
||||
|
||||
// ID returns request builder for AccessReview item
|
||||
func (b *AccessReviewInstancesCollectionRequestBuilder) ID(id string) *AccessReviewRequestBuilder {
|
||||
bb := &AccessReviewRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
|
||||
bb.baseURL += "/" + id
|
||||
return bb
|
||||
}
|
||||
|
||||
// AccessReviewInstancesCollectionRequest is request for AccessReview collection
|
||||
type AccessReviewInstancesCollectionRequest struct{ BaseRequest }
|
||||
|
||||
// Paging perfoms paging operation for AccessReview collection
|
||||
func (r *AccessReviewInstancesCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}) ([]AccessReview, error) {
|
||||
req, err := r.NewJSONRequest(method, path, obj)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if ctx != nil {
|
||||
req = req.WithContext(ctx)
|
||||
}
|
||||
res, err := r.client.Do(req)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
var values []AccessReview
|
||||
for {
|
||||
defer res.Body.Close()
|
||||
if res.StatusCode != http.StatusOK {
|
||||
b, _ := ioutil.ReadAll(res.Body)
|
||||
errRes := &ErrorResponse{Response: res}
|
||||
err := jsonx.Unmarshal(b, errRes)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("%s: %s", res.Status, string(b))
|
||||
}
|
||||
return nil, errRes
|
||||
}
|
||||
var (
|
||||
paging Paging
|
||||
value []AccessReview
|
||||
)
|
||||
err := jsonx.NewDecoder(res.Body).Decode(&paging)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
err = jsonx.Unmarshal(paging.Value, &value)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
values = append(values, value...)
|
||||
if len(paging.NextLink) == 0 {
|
||||
return values, nil
|
||||
}
|
||||
req, err = http.NewRequest("GET", paging.NextLink, nil)
|
||||
if ctx != nil {
|
||||
req = req.WithContext(ctx)
|
||||
}
|
||||
res, err = r.client.Do(req)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Get performs GET request for AccessReview collection
|
||||
func (r *AccessReviewInstancesCollectionRequest) Get(ctx context.Context) ([]AccessReview, error) {
|
||||
var query string
|
||||
if r.query != nil {
|
||||
query = "?" + r.query.Encode()
|
||||
}
|
||||
return r.Paging(ctx, "GET", query, nil)
|
||||
}
|
||||
|
||||
// Add performs POST request for AccessReview collection
|
||||
func (r *AccessReviewInstancesCollectionRequest) Add(ctx context.Context, reqObj *AccessReview) (resObj *AccessReview, err error) {
|
||||
err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
|
||||
return
|
||||
}
|
||||
|
||||
// MyDecisions returns request builder for AccessReviewDecision collection
|
||||
func (b *AccessReviewRequestBuilder) MyDecisions() *AccessReviewMyDecisionsCollectionRequestBuilder {
|
||||
bb := &AccessReviewMyDecisionsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
|
||||
bb.baseURL += "/myDecisions"
|
||||
return bb
|
||||
}
|
||||
|
||||
// AccessReviewMyDecisionsCollectionRequestBuilder is request builder for AccessReviewDecision collection
|
||||
type AccessReviewMyDecisionsCollectionRequestBuilder struct{ BaseRequestBuilder }
|
||||
|
||||
// Request returns request for AccessReviewDecision collection
|
||||
func (b *AccessReviewMyDecisionsCollectionRequestBuilder) Request() *AccessReviewMyDecisionsCollectionRequest {
|
||||
return &AccessReviewMyDecisionsCollectionRequest{
|
||||
BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
|
||||
}
|
||||
}
|
||||
|
||||
// ID returns request builder for AccessReviewDecision item
|
||||
func (b *AccessReviewMyDecisionsCollectionRequestBuilder) ID(id string) *AccessReviewDecisionRequestBuilder {
|
||||
bb := &AccessReviewDecisionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
|
||||
bb.baseURL += "/" + id
|
||||
return bb
|
||||
}
|
||||
|
||||
// AccessReviewMyDecisionsCollectionRequest is request for AccessReviewDecision collection
|
||||
type AccessReviewMyDecisionsCollectionRequest struct{ BaseRequest }
|
||||
|
||||
// Paging perfoms paging operation for AccessReviewDecision collection
|
||||
func (r *AccessReviewMyDecisionsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}) ([]AccessReviewDecision, error) {
|
||||
req, err := r.NewJSONRequest(method, path, obj)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if ctx != nil {
|
||||
req = req.WithContext(ctx)
|
||||
}
|
||||
res, err := r.client.Do(req)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
var values []AccessReviewDecision
|
||||
for {
|
||||
defer res.Body.Close()
|
||||
if res.StatusCode != http.StatusOK {
|
||||
b, _ := ioutil.ReadAll(res.Body)
|
||||
errRes := &ErrorResponse{Response: res}
|
||||
err := jsonx.Unmarshal(b, errRes)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("%s: %s", res.Status, string(b))
|
||||
}
|
||||
return nil, errRes
|
||||
}
|
||||
var (
|
||||
paging Paging
|
||||
value []AccessReviewDecision
|
||||
)
|
||||
err := jsonx.NewDecoder(res.Body).Decode(&paging)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
err = jsonx.Unmarshal(paging.Value, &value)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
values = append(values, value...)
|
||||
if len(paging.NextLink) == 0 {
|
||||
return values, nil
|
||||
}
|
||||
req, err = http.NewRequest("GET", paging.NextLink, nil)
|
||||
if ctx != nil {
|
||||
req = req.WithContext(ctx)
|
||||
}
|
||||
res, err = r.client.Do(req)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Get performs GET request for AccessReviewDecision collection
|
||||
func (r *AccessReviewMyDecisionsCollectionRequest) Get(ctx context.Context) ([]AccessReviewDecision, error) {
|
||||
var query string
|
||||
if r.query != nil {
|
||||
query = "?" + r.query.Encode()
|
||||
}
|
||||
return r.Paging(ctx, "GET", query, nil)
|
||||
}
|
||||
|
||||
// Add performs POST request for AccessReviewDecision collection
|
||||
func (r *AccessReviewMyDecisionsCollectionRequest) Add(ctx context.Context, reqObj *AccessReviewDecision) (resObj *AccessReviewDecision, err error) {
|
||||
err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
|
||||
return
|
||||
}
|
||||
|
||||
// Reviewers returns request builder for AccessReviewReviewer collection
|
||||
func (b *AccessReviewRequestBuilder) Reviewers() *AccessReviewReviewersCollectionRequestBuilder {
|
||||
bb := &AccessReviewReviewersCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
|
||||
bb.baseURL += "/reviewers"
|
||||
return bb
|
||||
}
|
||||
|
||||
// AccessReviewReviewersCollectionRequestBuilder is request builder for AccessReviewReviewer collection
|
||||
type AccessReviewReviewersCollectionRequestBuilder struct{ BaseRequestBuilder }
|
||||
|
||||
// Request returns request for AccessReviewReviewer collection
|
||||
func (b *AccessReviewReviewersCollectionRequestBuilder) Request() *AccessReviewReviewersCollectionRequest {
|
||||
return &AccessReviewReviewersCollectionRequest{
|
||||
BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
|
||||
}
|
||||
}
|
||||
|
||||
// ID returns request builder for AccessReviewReviewer item
|
||||
func (b *AccessReviewReviewersCollectionRequestBuilder) ID(id string) *AccessReviewReviewerRequestBuilder {
|
||||
bb := &AccessReviewReviewerRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
|
||||
bb.baseURL += "/" + id
|
||||
return bb
|
||||
}
|
||||
|
||||
// AccessReviewReviewersCollectionRequest is request for AccessReviewReviewer collection
|
||||
type AccessReviewReviewersCollectionRequest struct{ BaseRequest }
|
||||
|
||||
// Paging perfoms paging operation for AccessReviewReviewer collection
|
||||
func (r *AccessReviewReviewersCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}) ([]AccessReviewReviewer, error) {
|
||||
req, err := r.NewJSONRequest(method, path, obj)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if ctx != nil {
|
||||
req = req.WithContext(ctx)
|
||||
}
|
||||
res, err := r.client.Do(req)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
var values []AccessReviewReviewer
|
||||
for {
|
||||
defer res.Body.Close()
|
||||
if res.StatusCode != http.StatusOK {
|
||||
b, _ := ioutil.ReadAll(res.Body)
|
||||
errRes := &ErrorResponse{Response: res}
|
||||
err := jsonx.Unmarshal(b, errRes)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("%s: %s", res.Status, string(b))
|
||||
}
|
||||
return nil, errRes
|
||||
}
|
||||
var (
|
||||
paging Paging
|
||||
value []AccessReviewReviewer
|
||||
)
|
||||
err := jsonx.NewDecoder(res.Body).Decode(&paging)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
err = jsonx.Unmarshal(paging.Value, &value)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
values = append(values, value...)
|
||||
if len(paging.NextLink) == 0 {
|
||||
return values, nil
|
||||
}
|
||||
req, err = http.NewRequest("GET", paging.NextLink, nil)
|
||||
if ctx != nil {
|
||||
req = req.WithContext(ctx)
|
||||
}
|
||||
res, err = r.client.Do(req)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Get performs GET request for AccessReviewReviewer collection
|
||||
func (r *AccessReviewReviewersCollectionRequest) Get(ctx context.Context) ([]AccessReviewReviewer, error) {
|
||||
var query string
|
||||
if r.query != nil {
|
||||
query = "?" + r.query.Encode()
|
||||
}
|
||||
return r.Paging(ctx, "GET", query, nil)
|
||||
}
|
||||
|
||||
// Add performs POST request for AccessReviewReviewer collection
|
||||
func (r *AccessReviewReviewersCollectionRequest) Add(ctx context.Context, reqObj *AccessReviewReviewer) (resObj *AccessReviewReviewer, err error) {
|
||||
err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
|
||||
return
|
||||
}
|
13
vendor/github.com/matterbridge/msgraph.go/beta/AccessReviewReviewerModel.go
generated
vendored
13
vendor/github.com/matterbridge/msgraph.go/beta/AccessReviewReviewerModel.go
generated
vendored
@@ -1,13 +0,0 @@
|
||||
// Code generated by msgraph-generate.go DO NOT EDIT.
|
||||
|
||||
package msgraph
|
||||
|
||||
// AccessReviewReviewer undocumented
|
||||
type AccessReviewReviewer struct {
|
||||
// Entity is the base model of AccessReviewReviewer
|
||||
Entity
|
||||
// DisplayName undocumented
|
||||
DisplayName *string `json:"displayName,omitempty"`
|
||||
// UserPrincipalName undocumented
|
||||
UserPrincipalName *string `json:"userPrincipalName,omitempty"`
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user