| POST | /v1/forms |
|---|
"use strict";
export class FormStats {
/** @param {{Total?:number,NeedDecision?:number,Waiting?:number,Overdue?:number}} [init] */
constructor(init) { Object.assign(this, init) }
/** @type {number} */
Total;
/** @type {number} */
NeedDecision;
/** @type {number} */
Waiting;
/** @type {number} */
Overdue;
}
export class FormCard {
/** @param {{FormUID?:string,Name?:string,Slug?:string,Noun?:string,NumberPrefix?:string,Description?:string,Tone?:string,Status?:string,PublishedVersionNo?:number,PublishedAt?:string,PublishedBy?:string,DraftDirty?:boolean,DraftUpdatedAt?:string,DraftUpdatedBy?:string,PackLabel?:string,SettingsJson?:string,Stats?:FormStats,Offered?:string[],CreatedBy?:string,CreatedAt?:string,UpdatedAt?:string}} [init] */
constructor(init) { Object.assign(this, init) }
/** @type {string} */
FormUID;
/** @type {string} */
Name;
/** @type {string} */
Slug;
/** @type {string} */
Noun;
/** @type {string} */
NumberPrefix;
/** @type {string} */
Description;
/** @type {string} */
Tone;
/** @type {string} */
Status;
/** @type {?number} */
PublishedVersionNo;
/** @type {?string} */
PublishedAt;
/** @type {string} */
PublishedBy;
/** @type {boolean} */
DraftDirty;
/** @type {?string} */
DraftUpdatedAt;
/** @type {string} */
DraftUpdatedBy;
/** @type {string} */
PackLabel;
/** @type {string} */
SettingsJson;
/** @type {FormStats} */
Stats;
/** @type {string[]} */
Offered = [];
/** @type {string} */
CreatedBy;
/** @type {?string} */
CreatedAt;
/** @type {?string} */
UpdatedAt;
}
export class FormDetail extends FormCard {
/** @param {{DraftJson?:string,DraftRev?:number,SourceTemplateUID?:string,Warnings?:string[],AlwaysHidden?:string[],FormUID?:string,Name?:string,Slug?:string,Noun?:string,NumberPrefix?:string,Description?:string,Tone?:string,Status?:string,PublishedVersionNo?:number,PublishedAt?:string,PublishedBy?:string,DraftDirty?:boolean,DraftUpdatedAt?:string,DraftUpdatedBy?:string,PackLabel?:string,SettingsJson?:string,Stats?:FormStats,Offered?:string[],CreatedBy?:string,CreatedAt?:string,UpdatedAt?:string}} [init] */
constructor(init) { super(init); Object.assign(this, init) }
/** @type {string} */
DraftJson;
/** @type {number} */
DraftRev;
/** @type {?string} */
SourceTemplateUID;
/** @type {string[]} */
Warnings = [];
/** @type {string[]} */
AlwaysHidden = [];
}
export class FormResponse {
/** @param {{Form?:FormDetail,ResponseStatus?:ResponseStatus}} [init] */
constructor(init) { Object.assign(this, init) }
/** @type {FormDetail} */
Form;
/** @type {ResponseStatus} */
ResponseStatus;
}
export class FormCreateRequest {
/** @param {{Name?:string,TemplateUID?:string,ImportJson?:string}} [init] */
constructor(init) { Object.assign(this, init) }
/** @type {string} */
Name;
/** @type {?string} */
TemplateUID;
/** @type {string} */
ImportJson;
}
JavaScript FormCreateRequest DTOs
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 /v1/forms HTTP/1.1
Host: api.dev.dynamics.trendsic.com
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
Name: String,
TemplateUID: 00000000000000000000000000000000,
ImportJson: String
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length
{
Form:
{
DraftJson: String,
DraftRev: 0,
SourceTemplateUID: 00000000000000000000000000000000,
Warnings:
[
String
],
AlwaysHidden:
[
String
],
FormUID: 00000000000000000000000000000000,
Name: String,
Slug: String,
Noun: String,
NumberPrefix: String,
Description: String,
Tone: String,
Status: String,
PublishedVersionNo: 0,
PublishedAt: 0001-01-01,
PublishedBy: String,
DraftDirty: False,
DraftUpdatedAt: 0001-01-01,
DraftUpdatedBy: String,
PackLabel: String,
SettingsJson: String,
Stats:
{
Total: 0,
NeedDecision: 0,
Waiting: 0,
Overdue: 0
},
Offered:
[
String
],
CreatedBy: String,
CreatedAt: 0001-01-01,
UpdatedAt: 0001-01-01
},
ResponseStatus:
{
ErrorCode: String,
Message: String,
StackTrace: String,
Errors:
[
{
ErrorCode: String,
FieldName: String,
Message: String,
Meta:
{
String: String
}
}
],
Meta:
{
String: String
}
}
}