Skip to content

Commit bf06757

Browse files
committed
fix: 重构磁盘信息获取逻辑,合并个人和家庭磁盘信息请求为统一的配额详情请求
Signed-off-by: MadDogOwner <xiaoran@xrgzs.top>
1 parent e79839e commit bf06757

3 files changed

Lines changed: 17 additions & 63 deletions

File tree

drivers/139/driver.go

Lines changed: 6 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -944,42 +944,15 @@ func (d *Yun139) GetDetails(ctx context.Context) (*model.StorageDetails, error)
944944
if d.UserDomainID == "" {
945945
return nil, errs.NotImplement
946946
}
947-
var total, used int64
948-
if d.isFamily() {
949-
diskInfo, err := d.getFamilyDiskInfo(ctx)
950-
if err != nil {
951-
return nil, err
952-
}
953-
totalMb, err := strconv.ParseInt(diskInfo.Data.DiskSize, 10, 64)
954-
if err != nil {
955-
return nil, fmt.Errorf("failed convert disk size into integer: %+v", err)
956-
}
957-
usedMb, err := strconv.ParseInt(diskInfo.Data.UsedSize, 10, 64)
958-
if err != nil {
959-
return nil, fmt.Errorf("failed convert used size into integer: %+v", err)
960-
}
961-
total = totalMb * 1024 * 1024
962-
used = usedMb * 1024 * 1024
963-
} else {
964-
diskInfo, err := d.getPersonalDiskInfo(ctx)
965-
if err != nil {
966-
return nil, err
967-
}
968-
totalMb, err := strconv.ParseInt(diskInfo.Data.DiskSize, 10, 64)
969-
if err != nil {
970-
return nil, fmt.Errorf("failed convert disk size into integer: %+v", err)
971-
}
972-
freeMb, err := strconv.ParseInt(diskInfo.Data.FreeDiskSize, 10, 64)
973-
if err != nil {
974-
return nil, fmt.Errorf("failed convert free size into integer: %+v", err)
975-
}
976-
total = totalMb * 1024 * 1024
977-
used = total - (freeMb * 1024 * 1024)
947+
detail, err := d.getDiskQuotaDetail(ctx)
948+
if err != nil {
949+
return nil, err
978950
}
951+
979952
return &model.StorageDetails{
980953
DiskUsage: model.DiskUsage{
981-
TotalSpace: total,
982-
UsedSpace: used,
954+
TotalSpace: detail.Data.DiskSize,
955+
UsedSpace: detail.Data.DiskSize - detail.Data.FreeDiskSize,
983956
},
984957
}, nil
985958
}

drivers/139/types.go

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -313,20 +313,16 @@ type RefreshTokenResp struct {
313313
Desc string `xml:"desc"`
314314
}
315315

316-
type PersonalDiskInfoResp struct {
316+
type DiskQuotaDetail struct {
317317
BaseResp
318318
Data struct {
319-
FreeDiskSize string `json:"freeDiskSize"`
320-
DiskSize string `json:"diskSize"`
321-
IsInfinitePicStorage *bool `json:"isInfinitePicStorage"`
322-
} `json:"data"`
323-
}
324-
325-
type FamilyDiskInfoResp struct {
326-
BaseResp
327-
Data struct {
328-
UsedSize string `json:"usedSize"`
329-
DiskSize string `json:"diskSize"`
319+
FreeDiskSize int64 `json:"freeDiskSize"`
320+
DiskSize int64 `json:"diskSize"`
321+
// QuotaList []struct {
322+
// DriveType int `json:"driveType"`
323+
// DriveName string `json:"driveName"`
324+
// UsedSize int64 `json:"usedSize"`
325+
// } `json:"quotaList"`
330326
} `json:"data"`
331327
}
332328

drivers/139/util.go

Lines changed: 3 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -725,27 +725,12 @@ func (d *Yun139) uploadPersonalParts(ctx context.Context, partInfos []PartInfo,
725725
return nil
726726
}
727727

728-
func (d *Yun139) getPersonalDiskInfo(ctx context.Context) (*PersonalDiskInfoResp, error) {
728+
func (d *Yun139) getDiskQuotaDetail(ctx context.Context) (*DiskQuotaDetail, error) {
729729
data := map[string]interface{}{
730730
"userDomainId": d.UserDomainID,
731731
}
732-
var resp PersonalDiskInfoResp
733-
_, err := d.request("https://user-njs.yun.139.com/user/disk/getPersonalDiskInfo", http.MethodPost, func(req *resty.Request) {
734-
req.SetBody(data)
735-
req.SetContext(ctx)
736-
}, &resp)
737-
if err != nil {
738-
return nil, err
739-
}
740-
return &resp, nil
741-
}
742-
743-
func (d *Yun139) getFamilyDiskInfo(ctx context.Context) (*FamilyDiskInfoResp, error) {
744-
data := map[string]interface{}{
745-
"userDomainId": d.UserDomainID,
746-
}
747-
var resp FamilyDiskInfoResp
748-
_, err := d.request("https://user-njs.yun.139.com/user/disk/getFamilyDiskInfo", http.MethodPost, func(req *resty.Request) {
732+
var resp DiskQuotaDetail
733+
_, err := d.request("https://user-njs.yun.139.com/user/disk/quota/detail", http.MethodPost, func(req *resty.Request) {
749734
req.SetBody(data)
750735
req.SetContext(ctx)
751736
}, &resp)

0 commit comments

Comments
 (0)