| Requires any of the roles: | Agent, Administrator |
| POST,OPTIONS | /v1/DocumentSearch |
|---|
import 'package:servicestack/servicestack.dart';
import 'dart:typed_data';
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 .csv suffix or ?format=csv
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/csv
Content-Type: text/csv
Content-Length: length
{"searchTerms":"String","searchMode":"Exact","termMode":"All","userId":"00000000000000000000000000000000"}
HTTP/1.1 200 OK
Content-Type: text/csv
Content-Length: length
{"DocumentSearchCount":0,"DocumentSearchResults":[{"AttachmentId":"00000000000000000000000000000000","DateAdded":"0001-01-01T00:00:00.0000000","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"}}}