Skip to content

Commit 008f43b

Browse files
committed
Handle date in FileVersion
1 parent 3623f4c commit 008f43b

File tree

1 file changed

+47
-0
lines changed

1 file changed

+47
-0
lines changed

api_client.go

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -464,6 +464,35 @@ func deserializeDTO(readCloser io.Reader, successPayload interface{}) error {
464464
}
465465
ret.Files[index] = f
466466
}
467+
468+
} else if strings.Contains(dtoType, "FileVersionsResponse") {
469+
var temp FileVersionsResponse_
470+
ret := successPayload.(*FileVersionsResponse)
471+
if err := json.NewDecoder(readCloser).Decode(&temp); err != nil {
472+
return err
473+
}
474+
ret.Code = temp.Code
475+
ret.Status = temp.Status
476+
ret.FileVersions = make([]FileVersion, len(temp.FileVersions))
477+
re := regexp.MustCompile("\\/Date\\((\\d+?)000\\+0000\\)\\/")
478+
479+
for index, fileVersion := range temp.FileVersions {
480+
res := re.FindAllStringSubmatch(fileVersion.ModifiedDate, -1)
481+
var f FileVersion
482+
f.Name = fileVersion.Name
483+
f.IsFolder = fileVersion.IsFolder
484+
f.Size = fileVersion.Size
485+
f.Path = fileVersion.Path
486+
f.IsLatest = fileVersion.IsLatest
487+
f.VersionId = fileVersion.VersionId
488+
if res != nil {
489+
i, err := strconv.ParseInt(res[0][1], 10, 64)
490+
if err == nil {
491+
f.ModifiedDate = time.Unix(i, 0)
492+
}
493+
}
494+
ret.FileVersions[index] = f
495+
}
467496

468497
} else {
469498
return json.NewDecoder(readCloser).Decode(&successPayload)
@@ -487,6 +516,24 @@ type File_ struct {
487516
Path string `json:"Path,omitempty"`
488517
}
489518

519+
type FileVersionsResponse_ struct {
520+
// Response status code.
521+
Code int32 `json:"Code"`
522+
// Response status.
523+
Status string `json:"Status,omitempty"`
524+
FileVersions []FileVersion_ `json:"FileVersions,omitempty"`
525+
}
526+
527+
type FileVersion_ struct {
528+
Name string `json:"Name,omitempty"`
529+
IsFolder bool `json:"IsFolder"`
530+
ModifiedDate string `json:"ModifiedDate,omitempty"`
531+
Size int64 `json:"Size"`
532+
Path string `json:"Path,omitempty"`
533+
VersionId string `json:"VersionId,omitempty"`
534+
IsLatest bool `json:"IsLatest,omitempty"`
535+
}
536+
490537
// TokenResp represents data returned by GetAccessToken and RefreshToken as HTTP response body.
491538
type TokenResp struct {
492539
AccessToken string `json:"access_token"`

0 commit comments

Comments
 (0)