MyApp

<back to all web services

QueryFileSystemItems

Files

// @DataContract
export class QueryBase
{
    // @DataMember(Order=1)
    public skip?: number;

    // @DataMember(Order=2)
    public take?: number;

    // @DataMember(Order=3)
    public orderBy: string;

    // @DataMember(Order=4)
    public orderByDesc: string;

    // @DataMember(Order=5)
    public include: string;

    // @DataMember(Order=6)
    public fields: string;

    // @DataMember(Order=7)
    public meta: { [index: string]: string; };

    public constructor(init?: Partial<QueryBase>) { (Object as any).assign(this, init); }
}

export class QueryDb<T> extends QueryBase
{

    public constructor(init?: Partial<QueryDb<T>>) { super(init); (Object as any).assign(this, init); }
}

export enum FileAccessType
{
    Public = 'Public',
    Team = 'Team',
    Private = 'Private',
}

export class FileSystemFile implements IFile
{
    public id: number;
    public fileName: string;
    public filePath: string;
    public contentType: string;
    public contentLength: number;
    // @References("typeof(MyApp.ServiceModel.FileSystemItem)")
    public fileSystemItemId: number;

    public constructor(init?: Partial<FileSystemFile>) { (Object as any).assign(this, init); }
}

export class FileSystemItem implements IFileItem
{
    public id: number;
    public fileAccessType?: FileAccessType;
    public file: FileSystemFile;
    public appUserId: string;

    public constructor(init?: Partial<FileSystemItem>) { (Object as any).assign(this, init); }
}

export class QueryFileSystemItems extends QueryDb<FileSystemItem>
{
    public appUserId?: number;
    public fileAccessType?: FileAccessType;

    public constructor(init?: Partial<QueryFileSystemItems>) { super(init); (Object as any).assign(this, init); }
}

export class Todo
{
    public id: number;
    public text: string;
    public isFinished: boolean;

    public constructor(init?: Partial<Todo>) { (Object as any).assign(this, init); }
}

// @DataContract
export class QueryResponse<Todo>
{
    // @DataMember(Order=1)
    public offset: number;

    // @DataMember(Order=2)
    public total: number;

    // @DataMember(Order=3)
    public results: Todo[];

    // @DataMember(Order=4)
    public meta: { [index: string]: string; };

    // @DataMember(Order=5)
    public responseStatus: ResponseStatus;

    public constructor(init?: Partial<QueryResponse<Todo>>) { (Object as any).assign(this, init); }
}

TypeScript QueryFileSystemItems DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv

HTTP + 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
		}
	}
}