package dtos
import (
ss "github.com/ServiceStack/servicestack-go"
)
type FileAccessType string
const (
FileAccessTypePublic FileAccessType = "Public"
FileAccessTypeTeam = "Team"
FileAccessTypePrivate = "Private"
)
type FileSystemFile struct {
Id int `json:"id,omitempty"`
FileName string `json:"fileName"`
FilePath string `json:"filePath"`
ContentType string `json:"contentType"`
ContentLength int64 `json:"contentLength,omitempty"`
// @References("typeof(MyApp.ServiceModel.FileSystemItem)")
FileSystemItemId int `json:"fileSystemItemId,omitempty"`
}
type FileSystemItem struct {
Id int `json:"id,omitempty"`
FileAccessType *FileAccessType `json:"fileAccessType,omitempty"`
File FileSystemFile `json:"file"`
AppUserId string `json:"appUserId"`
}
type QueryFileSystemItems struct {
ss.QueryDb
AppUserId *int `json:"appUserId,omitempty"`
FileAccessType *FileAccessType `json:"fileAccessType,omitempty"`
}
type Todo struct {
Id int64 `json:"id,omitempty"`
Text string `json:"text"`
IsFinished bool `json:"isFinished,omitempty"`
}
To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /jsv/reply/QueryFileSystemItems HTTP/1.1
Host: blazor-gallery.servicestack.net
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
appUserId: 0,
fileAccessType: Public,
skip: 0,
take: 0,
orderBy: String,
orderByDesc: String,
include: String,
fields: String,
meta:
{
String: String
}
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length
{
offset: 0,
total: 0,
results:
[
{
id: 0,
fileAccessType: Public,
file:
{
id: 0,
fileName: String,
filePath: String,
contentType: String,
contentLength: 0,
fileSystemItemId: 0
},
appUserId: String
}
],
meta:
{
String: String
},
responseStatus:
{
errorCode: String,
message: String,
stackTrace: String,
errors:
[
{
errorCode: String,
fieldName: String,
message: String,
meta:
{
String: String
}
}
],
meta:
{
String: String
}
}
}