forked from lug/matterbridge
		
	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