diff --git a/drivers/onedrive/drive.go b/drivers/onedrive/drive.go index 02b66486d..371a4cb3c 100644 --- a/drivers/onedrive/drive.go +++ b/drivers/onedrive/drive.go @@ -26,6 +26,7 @@ func (d *Onedrive) Config() driver.Config { func (d *Onedrive) GetAddition() driver.Additional { return &d.Addition } + func (d *Onedrive) Init(ctx context.Context) error { if d.ChunkSize < 1 { d.ChunkSize = 5 @@ -35,19 +36,20 @@ func (d *Onedrive) Init(ctx context.Context) error { } return d.refreshToken() } + func (d *Onedrive) GetUserInfo(ctx context.Context) (string, error) { return "", nil } + func (d *Onedrive) GetInfo(ctx context.Context) (string, string, string, error) { url := d.GetMetaUrl(false, "/") user := Info{} - resp, err := d.Request(url, http.MethodGet, nil, &user) + _, err := d.Request(url, http.MethodGet, nil, &user) if err != nil { return "", "", "", err } - logger.Info("resp", zap.Any("resp", resp)) - return user.LastModifiedBy.User.DisplayName, user.ParentReference.DriveID, user.ParentReference.DriveType, nil + return user.CreatedBy.User.Email, user.ParentReference.DriveID, user.ParentReference.DriveType, nil } func (d *Onedrive) GetSpaceSize(ctx context.Context) (used string, total string, err error) { @@ -63,6 +65,7 @@ func (d *Onedrive) GetSpaceSize(ctx context.Context) (used string, total string, total = strconv.Itoa(size.Total) return } + func (d *Onedrive) Drop(ctx context.Context) error { return nil } diff --git a/drivers/onedrive/meta.go b/drivers/onedrive/meta.go index 729e15767..ae89d8b34 100644 --- a/drivers/onedrive/meta.go +++ b/drivers/onedrive/meta.go @@ -43,19 +43,12 @@ type About struct { } type Info struct { - LastModifiedBy struct { - Application struct { - DisplayName string `json:"displayName"` - ID string `json:"id"` - } `json:"application"` - Device struct { - ID string `json:"id"` - } `json:"device"` + CreatedBy struct { User struct { + Email string `json:"email"` DisplayName string `json:"displayName"` - ID string `json:"id"` } `json:"user"` - } `json:"lastModifiedBy"` + } `json:"createdBy"` ParentReference struct { DriveID string `json:"driveId"` DriveType string `json:"driveType"` diff --git a/drivers/onedrive/util.go b/drivers/onedrive/util.go index 34e8c04ef..e1c7d1249 100644 --- a/drivers/onedrive/util.go +++ b/drivers/onedrive/util.go @@ -3,11 +3,10 @@ package onedrive import ( "errors" "fmt" - "net/url" - "strings" "github.com/IceWhaleTech/CasaOS-Common/utils/logger" "github.com/IceWhaleTech/CasaOS/drivers/base" + "github.com/IceWhaleTech/CasaOS/pkg/utils" "go.uber.org/zap" ) @@ -15,6 +14,7 @@ var ( client_id = "private build" client_secret = "private build" ) + var onedriveHostMap = map[string]Host{ "global": { Oauth: "https://login.microsoftonline.com", @@ -34,31 +34,9 @@ var onedriveHostMap = map[string]Host{ }, } -func EncodePath(path string, all ...bool) string { - seg := strings.Split(path, "/") - toReplace := []struct { - Src string - Dst string - }{ - {Src: "%", Dst: "%25"}, - {"%", "%25"}, - {"?", "%3F"}, - {"#", "%23"}, - } - for i := range seg { - if len(all) > 0 && all[0] { - seg[i] = url.PathEscape(seg[i]) - } else { - for j := range toReplace { - seg[i] = strings.ReplaceAll(seg[i], toReplace[j].Src, toReplace[j].Dst) - } - } - } - return strings.Join(seg, "/") -} func (d *Onedrive) GetMetaUrl(auth bool, path string) string { host := onedriveHostMap[d.Region] - path = EncodePath(path, true) + path = utils.EncodePath(path, true) if auth { return host.Oauth } diff --git a/route/v1/cloud.go b/route/v1/cloud.go index a17a135d5..ff33ee0e0 100644 --- a/route/v1/cloud.go +++ b/route/v1/cloud.go @@ -16,23 +16,6 @@ import ( ) func ListStorages(ctx echo.Context) error { - // var req model.PageReq - // if err := ctx.Bind(&req); err != nil { - // return ctx.JSON(common_err.SUCCESS, model.Result{Success: common_err.CLIENT_ERROR, Message: common_err.GetMsg(common_err.CLIENT_ERROR), Data: err.Error()}) - // return - // } - // req.Validate() - - // logger.Info("ListStorages", zap.Any("req", req)) - // storages, total, err := service.MyService.Storage().GetStorages(req.Page, req.PerPage) - // if err != nil { - // return ctx.JSON(common_err.SUCCESS, model.Result{Success: common_err.SERVICE_ERROR, Message: common_err.GetMsg(common_err.SERVICE_ERROR), Data: err.Error()}) - // return - // } - // return ctx.JSON(common_err.SUCCESS, model.Result{Success: common_err.SUCCESS, Message: common_err.GetMsg(common_err.SUCCESS), Data: model.PageResp{ - // Content: storages, - // Total: total, - // }}) r, err := service.MyService.Storage().GetStorages() if err != nil { return ctx.JSON(common_err.SUCCESS, model.Result{Success: common_err.SERVICE_ERROR, Message: common_err.GetMsg(common_err.SERVICE_ERROR), Data: err.Error()}) @@ -58,12 +41,7 @@ func ListStorages(ctx echo.Context) error { list := []httper.MountPoint{} for _, v := range r.MountPoints { - list = append(list, httper.MountPoint{ - Fs: v.Fs, - Icon: v.Icon, - MountPoint: v.MountPoint, - Name: v.Name, - }) + list = append(list, httper.MountPoint(v)) } return ctx.JSON(common_err.SUCCESS, model.Result{Success: common_err.SUCCESS, Message: common_err.GetMsg(common_err.SUCCESS), Data: list})