| Requires any of the roles: | Agent, Administrator |
| POST,OPTIONS | /v1/DocumentSearch |
|---|
import 'package:servicestack/servicestack.dart';
class LineSearchResult implements IConvertible
{
String? LineText;
int? PageNo;
int? PageLineNo;
int? DocLineNo;
double? BoxTop;
double? BoxLeft;
double? BoxWidth;
double? BoxHeight;
LineSearchResult({this.LineText,this.PageNo,this.PageLineNo,this.DocLineNo,this.BoxTop,this.BoxLeft,this.BoxWidth,this.BoxHeight});
LineSearchResult.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
LineText = json['LineText'];
PageNo = json['PageNo'];
PageLineNo = json['PageLineNo'];
DocLineNo = json['DocLineNo'];
BoxTop = JsonConverters.toDouble(json['BoxTop']);
BoxLeft = JsonConverters.toDouble(json['BoxLeft']);
BoxWidth = JsonConverters.toDouble(json['BoxWidth']);
BoxHeight = JsonConverters.toDouble(json['BoxHeight']);
return this;
}
Map<String, dynamic> toJson() => {
'LineText': LineText,
'PageNo': PageNo,
'PageLineNo': PageLineNo,
'DocLineNo': DocLineNo,
'BoxTop': BoxTop,
'BoxLeft': BoxLeft,
'BoxWidth': BoxWidth,
'BoxHeight': BoxHeight
};
getTypeName() => "LineSearchResult";
TypeContext? context = _ctx;
}
class DocumentSearchResult implements IConvertible
{
String? AttachmentId;
DateTime? DateAdded;
String? AttachmentName;
String? Description;
String? DocumentType;
String? DocumentGroup;
String? DropboxTableName;
int? DropboxRecordId;
String? AttachmentTableName;
String? AttachmentFieldName;
int? AttachmentRecordId;
String? FilePath;
String? OCRSource;
String? OCRResult;
List<LineSearchResult>? Lines = [];
DocumentSearchResult({this.AttachmentId,this.DateAdded,this.AttachmentName,this.Description,this.DocumentType,this.DocumentGroup,this.DropboxTableName,this.DropboxRecordId,this.AttachmentTableName,this.AttachmentFieldName,this.AttachmentRecordId,this.FilePath,this.OCRSource,this.OCRResult,this.Lines});
DocumentSearchResult.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
AttachmentId = json['AttachmentId'];
DateAdded = JsonConverters.fromJson(json['DateAdded'],'DateTime',context!);
AttachmentName = json['AttachmentName'];
Description = json['Description'];
DocumentType = json['DocumentType'];
DocumentGroup = json['DocumentGroup'];
DropboxTableName = json['DropboxTableName'];
DropboxRecordId = json['DropboxRecordId'];
AttachmentTableName = json['AttachmentTableName'];
AttachmentFieldName = json['AttachmentFieldName'];
AttachmentRecordId = json['AttachmentRecordId'];
FilePath = json['FilePath'];
OCRSource = json['OCRSource'];
OCRResult = json['OCRResult'];
Lines = JsonConverters.fromJson(json['Lines'],'List<LineSearchResult>',context!);
return this;
}
Map<String, dynamic> toJson() => {
'AttachmentId': AttachmentId,
'DateAdded': JsonConverters.toJson(DateAdded,'DateTime',context!),
'AttachmentName': AttachmentName,
'Description': Description,
'DocumentType': DocumentType,
'DocumentGroup': DocumentGroup,
'DropboxTableName': DropboxTableName,
'DropboxRecordId': DropboxRecordId,
'AttachmentTableName': AttachmentTableName,
'AttachmentFieldName': AttachmentFieldName,
'AttachmentRecordId': AttachmentRecordId,
'FilePath': FilePath,
'OCRSource': OCRSource,
'OCRResult': OCRResult,
'Lines': JsonConverters.toJson(Lines,'List<LineSearchResult>',context!)
};
getTypeName() => "DocumentSearchResult";
TypeContext? context = _ctx;
}
class DocumentSearchResponse implements IConvertible
{
int? DocumentSearchCount;
List<DocumentSearchResult>? DocumentSearchResults = [];
ResponseStatus? ResponseStatus;
DocumentSearchResponse({this.DocumentSearchCount,this.DocumentSearchResults,this.ResponseStatus});
DocumentSearchResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
DocumentSearchCount = json['DocumentSearchCount'];
DocumentSearchResults = JsonConverters.fromJson(json['DocumentSearchResults'],'List<DocumentSearchResult>',context!);
ResponseStatus = JsonConverters.fromJson(json['ResponseStatus'],'ResponseStatus',context!);
return this;
}
Map<String, dynamic> toJson() => {
'DocumentSearchCount': DocumentSearchCount,
'DocumentSearchResults': JsonConverters.toJson(DocumentSearchResults,'List<DocumentSearchResult>',context!),
'ResponseStatus': JsonConverters.toJson(ResponseStatus,'ResponseStatus',context!)
};
getTypeName() => "DocumentSearchResponse";
TypeContext? context = _ctx;
}
enum DocumentSearchMode
{
Exact,
Contains,
StartsWith,
EndsWith,
}
enum DocumentTermMode
{
All,
Any,
}
class DocumentSearchRequest implements IConvertible
{
String? searchTerms;
DocumentSearchMode? searchMode;
DocumentTermMode? termMode;
String? userId;
DocumentSearchRequest({this.searchTerms,this.searchMode,this.termMode,this.userId});
DocumentSearchRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
searchTerms = json['searchTerms'];
searchMode = JsonConverters.fromJson(json['searchMode'],'DocumentSearchMode',context!);
termMode = JsonConverters.fromJson(json['termMode'],'DocumentTermMode',context!);
userId = json['userId'];
return this;
}
Map<String, dynamic> toJson() => {
'searchTerms': searchTerms,
'searchMode': JsonConverters.toJson(searchMode,'DocumentSearchMode',context!),
'termMode': JsonConverters.toJson(termMode,'DocumentTermMode',context!),
'userId': userId
};
getTypeName() => "DocumentSearchRequest";
TypeContext? context = _ctx;
}
TypeContext _ctx = TypeContext(library: 'api.dev.dynamics.trendsic.com', types: <String, TypeInfo> {
'LineSearchResult': TypeInfo(TypeOf.Class, create:() => LineSearchResult()),
'DocumentSearchResult': TypeInfo(TypeOf.Class, create:() => DocumentSearchResult()),
'List<LineSearchResult>': TypeInfo(TypeOf.Class, create:() => <LineSearchResult>[]),
'DocumentSearchResponse': TypeInfo(TypeOf.Class, create:() => DocumentSearchResponse()),
'List<DocumentSearchResult>': TypeInfo(TypeOf.Class, create:() => <DocumentSearchResult>[]),
'DocumentSearchMode': TypeInfo(TypeOf.Enum, enumValues:DocumentSearchMode.values),
'DocumentTermMode': TypeInfo(TypeOf.Enum, enumValues:DocumentTermMode.values),
'DocumentSearchRequest': TypeInfo(TypeOf.Class, create:() => DocumentSearchRequest()),
});
Dart DocumentSearchRequest 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/DocumentSearch HTTP/1.1
Host: api.dev.dynamics.trendsic.com
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
searchTerms: String,
searchMode: Exact,
termMode: All,
userId: 00000000000000000000000000000000
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length
{
DocumentSearchCount: 0,
DocumentSearchResults:
[
{
AttachmentId: 00000000000000000000000000000000,
DateAdded: 0001-01-01,
AttachmentName: String,
Description: String,
DocumentType: String,
DocumentGroup: String,
DropboxTableName: String,
DropboxRecordId: 0,
AttachmentTableName: String,
AttachmentFieldName: String,
AttachmentRecordId: 0,
FilePath: String,
OCRSource: String,
OCRResult: String,
Lines:
[
{
LineText: String,
PageNo: 0,
PageLineNo: 0,
DocLineNo: 0,
BoxTop: 0,
BoxLeft: 0,
BoxWidth: 0,
BoxHeight: 0
}
]
}
],
ResponseStatus:
{
ErrorCode: String,
Message: String,
StackTrace: String,
Errors:
[
{
ErrorCode: String,
FieldName: String,
Message: String,
Meta:
{
String: String
}
}
],
Meta:
{
String: String
}
}
}