tvpl.api

<back to all web services

CreateOrUpdateTemplateRequest

Requires Authentication
Required role:super-admin
The following routes are available for this service:
POST/document-template

export class CreateDocumentTemplateResponse implements IResponseRequest
{
    public insertedId: number;
    public code: number;
    public message?: string;

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

export class DocumentElement
{
    public id: number;
    public templateId: number;
    // @Required()
    public elementKey: string;

    // @Required()
    public tag: string;

    public parentId?: number;
    // @Required()
    public title: string;

    public description?: string;
    // @Required()
    public dataType: string;

    public templateType?: string;
    public orderIndex: number;
    public isRequired?: boolean;

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

export class DocumentElementDto extends DocumentElement
{
    public children: DocumentElementDto[];

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

export class CreateOrUpdateTemplateRequest
{
    public id?: number;
    public documentIds: number[];
    public title?: string;
    public description?: string;
    public isActive: boolean;
    public elements?: DocumentElementDto[];

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

TypeScript CreateOrUpdateTemplateRequest 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 /document-template HTTP/1.1 
Host: etc-api.vsmlab.vn 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	id: 0,
	documentIds: 
	[
		0
	],
	title: String,
	description: String,
	isActive: False,
	elements: 
	[
		{
			children: 
			[
				{
					children: 
					[
						{
							id: 0,
							templateId: 0,
							elementKey: String,
							tag: String,
							parentId: 0,
							title: String,
							description: String,
							dataType: String,
							templateType: String,
							orderIndex: 0,
							isRequired: False
						}
					],
					id: 0,
					templateId: 0,
					elementKey: String,
					tag: String,
					parentId: 0,
					title: String,
					description: String,
					dataType: String,
					templateType: String,
					orderIndex: 0,
					isRequired: False
				}
			],
			id: 0,
			templateId: 0,
			elementKey: String,
			tag: String,
			parentId: 0,
			title: String,
			description: String,
			dataType: String,
			templateType: String,
			orderIndex: 0,
			isRequired: False
		}
	]
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	insertedId: 0,
	code: 0,
	message: String
}