73 lines
3.4 KiB
Go
73 lines
3.4 KiB
Go
package models
|
|
|
|
import "time"
|
|
|
|
// WOPICheckFileInfoResponse represents the response to WOPI CheckFileInfo request
|
|
// Reference: https://docs.microsoft.com/en-us/openspecs/office_protocols/ms-wopi/4b8ffc3f-e8a6-4169-8c4e-34924ac6ae2f
|
|
type WOPICheckFileInfoResponse struct {
|
|
BaseFileName string `json:"BaseFileName"`
|
|
Size int64 `json:"Size"`
|
|
Version string `json:"Version"`
|
|
OwnerId string `json:"OwnerId"`
|
|
UserId string `json:"UserId"`
|
|
UserFriendlyName string `json:"UserFriendlyName"`
|
|
UserCanWrite bool `json:"UserCanWrite"`
|
|
UserCanRename bool `json:"UserCanRename"`
|
|
UserCanNotWriteRelative bool `json:"UserCanNotWriteRelative"`
|
|
ReadOnly bool `json:"ReadOnly"`
|
|
RestrictedWebViewOnly bool `json:"RestrictedWebViewOnly"`
|
|
UserCanCreateRelativeToFolder bool `json:"UserCanCreateRelativeToFolder"`
|
|
EnableOwnerTermination bool `json:"EnableOwnerTermination"`
|
|
SupportsUpdate bool `json:"SupportsUpdate"`
|
|
SupportsCobalt bool `json:"SupportsCobalt"`
|
|
SupportsLocks bool `json:"SupportsLocks"`
|
|
SupportsExtendedLockLength bool `json:"SupportsExtendedLockLength"`
|
|
SupportsGetLock bool `json:"SupportsGetLock"`
|
|
SupportsDelete bool `json:"SupportsDelete"`
|
|
SupportsRename bool `json:"SupportsRename"`
|
|
SupportsRenameRelativeToFolder bool `json:"SupportsRenameRelativeToFolder"`
|
|
SupportsFolders bool `json:"SupportsFolders"`
|
|
SupportsScenarios []string `json:"SupportsScenarios"`
|
|
LastModifiedTime string `json:"LastModifiedTime"`
|
|
IsAnonymousUser bool `json:"IsAnonymousUser"`
|
|
TimeZone string `json:"TimeZone"`
|
|
CloseUrl string `json:"CloseUrl,omitempty"`
|
|
EditUrl string `json:"EditUrl,omitempty"`
|
|
ViewUrl string `json:"ViewUrl,omitempty"`
|
|
FileSharingUrl string `json:"FileSharingUrl,omitempty"`
|
|
DownloadUrl string `json:"DownloadUrl,omitempty"`
|
|
}
|
|
|
|
// WOPIPutFileResponse represents the response to WOPI PutFile request
|
|
type WOPIPutFileResponse struct {
|
|
ItemVersion string `json:"ItemVersion"`
|
|
}
|
|
|
|
// WOPILockInfo represents information about a file lock
|
|
type WOPILockInfo struct {
|
|
FileID string `json:"file_id"`
|
|
UserID string `json:"user_id"`
|
|
LockID string `json:"lock_id"`
|
|
CreatedAt time.Time `json:"created_at"`
|
|
ExpiresAt time.Time `json:"expires_at"`
|
|
}
|
|
|
|
// WOPIAccessTokenRequest represents a request to get WOPI access token
|
|
type WOPIAccessTokenRequest struct {
|
|
FileID string `json:"file_id"`
|
|
}
|
|
|
|
// WOPIAccessTokenResponse represents a response with WOPI access token
|
|
type WOPIAccessTokenResponse struct {
|
|
AccessToken string `json:"access_token"`
|
|
AccessTokenTTL int64 `json:"access_token_ttl"`
|
|
BootstrapperUrl string `json:"bootstrapper_url,omitempty"`
|
|
ClosePostMessage bool `json:"close_post_message"`
|
|
}
|
|
|
|
// WOPISessionResponse represents a response for creating a WOPI session
|
|
type WOPISessionResponse struct {
|
|
WOPISrc string `json:"wopi_src"`
|
|
AccessToken string `json:"access_token"`
|
|
}
|