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 .csv suffix or ?format=csv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /csv/reply/QueryFileSystemItems HTTP/1.1
Host: blazor-gallery.servicestack.net
Accept: text/csv
Content-Type: text/csv
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/csv
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"}}}