diff options
author | Wim <wim@42.be> | 2020-03-08 17:08:18 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-03-08 17:08:18 +0100 |
commit | 9785edd26366be8eb11c2435f50f90a5c8eea7fc (patch) | |
tree | e8e236b5b273e7535c607507cc059f3b957068a1 /vendor/github.com/matterbridge/msgraph.go/beta/extensions.go | |
parent | 2a0bc11b684f63305258e338c5f1d0e91eb24414 (diff) | |
download | matterbridge-msglm-9785edd26366be8eb11c2435f50f90a5c8eea7fc.tar.gz matterbridge-msglm-9785edd26366be8eb11c2435f50f90a5c8eea7fc.tar.bz2 matterbridge-msglm-9785edd26366be8eb11c2435f50f90a5c8eea7fc.zip |
Remove replace directives and use own fork to make go get work again (#1028)
See https://github.com/golang/go/issues/30354
go get doesn't honor the go.mod replace options.
Diffstat (limited to 'vendor/github.com/matterbridge/msgraph.go/beta/extensions.go')
-rw-r--r-- | vendor/github.com/matterbridge/msgraph.go/beta/extensions.go | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/vendor/github.com/matterbridge/msgraph.go/beta/extensions.go b/vendor/github.com/matterbridge/msgraph.go/beta/extensions.go new file mode 100644 index 00000000..23971438 --- /dev/null +++ b/vendor/github.com/matterbridge/msgraph.go/beta/extensions.go @@ -0,0 +1,62 @@ +// Code generated by msgraph-generate.go DO NOT EDIT. + +package msgraph + +import ( + "context" + "fmt" + "net/url" + "strings" +) + +// ItemWithPath returns DriveItemRequestBuilder addressed by relative path +func (b *DriveItemRequestBuilder) ItemWithPath(path string) *DriveItemRequestBuilder { + bb := &DriveItemRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder} + if len(path) == 0 || path[0] != '/' { + path = "/" + path + } + bb.baseURL += ":" + path + ":" + return bb +} + +// GetByPath returns SiteRequestBuilder addressed by hostname and path +func (b *GraphServiceSitesCollectionRequestBuilder) GetByPath(hostname, path string) *SiteRequestBuilder { + bb := &SiteRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder} + if len(path) == 0 || path[0] != '/' { + path = "/" + path + } + bb.baseURL += "/" + hostname + ":" + path + ":" + return bb +} + +// GetDriveItemByURL returns DriveItemRequestBuilder addressed by URL +func (b *GraphServiceRequestBuilder) GetDriveItemByURL(ctx context.Context, itemURL string) (*DriveItemRequestBuilder, error) { + u, err := url.Parse(itemURL) + if err != nil { + return nil, err + } + u.RawQuery = "" + itemURL = u.String() + var site *Site + segments := strings.Split(u.Path, "/") + for i := 3; i <= len(segments); i++ { + site, err = b.Sites().GetByPath(u.Hostname(), strings.Join(segments[:i], "/")).Request().Get(ctx) + if err == nil { + break + } + } + if site == nil { + return nil, fmt.Errorf("Site for %s not found", itemURL) + } + drives, err := b.Sites().ID(*site.ID).Drives().Request().Get(ctx) + if err != nil { + return nil, err + } + for _, drive := range drives { + if strings.HasPrefix(itemURL, *drive.WebURL) { + path := itemURL[len(*drive.WebURL):] + return b.Drives().ID(*drive.ID).Root().ItemWithPath(path), nil + } + } + return nil, fmt.Errorf("DriveItem for %s not found", itemURL) +} |