diff options
author | Qais Patankar <qaisjp@gmail.com> | 2020-03-15 22:43:46 +0000 |
---|---|---|
committer | Wim <wim@42.be> | 2020-03-22 00:02:48 +0100 |
commit | 76e5fe5a87d7e60919075f96eee599f3c6255a9f (patch) | |
tree | af3181ad6aadaea02069473a3718a827be888426 /vendor/github.com/yaegashi/msgraph.go/beta/extensions.go | |
parent | 802c80f40c709ba4967de317e40a8d6abe57f6be (diff) | |
download | matterbridge-msglm-76e5fe5a87d7e60919075f96eee599f3c6255a9f.tar.gz matterbridge-msglm-76e5fe5a87d7e60919075f96eee599f3c6255a9f.tar.bz2 matterbridge-msglm-76e5fe5a87d7e60919075f96eee599f3c6255a9f.zip |
Update vendor yaegashi/msgraph.go to v0.1.2 (2)
Diffstat (limited to 'vendor/github.com/yaegashi/msgraph.go/beta/extensions.go')
-rw-r--r-- | vendor/github.com/yaegashi/msgraph.go/beta/extensions.go | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/vendor/github.com/yaegashi/msgraph.go/beta/extensions.go b/vendor/github.com/yaegashi/msgraph.go/beta/extensions.go new file mode 100644 index 00000000..23971438 --- /dev/null +++ b/vendor/github.com/yaegashi/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) +} |