| 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 .xml suffix or ?format=xml
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: application/xml
Content-Type: application/xml
Content-Length: length
<DocumentSearchRequest xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/CRM.AgencyPlatform.API.Internal">
<searchMode>Exact</searchMode>
<searchTerms>String</searchTerms>
<termMode>All</termMode>
<userId>00000000-0000-0000-0000-000000000000</userId>
</DocumentSearchRequest>
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length
<DocumentSearchResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/CRM.AgencyPlatform.API.Internal">
<DocumentSearchCount>0</DocumentSearchCount>
<DocumentSearchResults>
<DocumentSearchResult>
<AttachmentFieldName>String</AttachmentFieldName>
<AttachmentId>00000000-0000-0000-0000-000000000000</AttachmentId>
<AttachmentName>String</AttachmentName>
<AttachmentRecordId>0</AttachmentRecordId>
<AttachmentTableName>String</AttachmentTableName>
<DateAdded>0001-01-01T00:00:00</DateAdded>
<Description>String</Description>
<DocumentGroup>String</DocumentGroup>
<DocumentType>String</DocumentType>
<DropboxRecordId>0</DropboxRecordId>
<DropboxTableName>String</DropboxTableName>
<FilePath>String</FilePath>
<Lines>
<LineSearchResult>
<BoxHeight>0</BoxHeight>
<BoxLeft>0</BoxLeft>
<BoxTop>0</BoxTop>
<BoxWidth>0</BoxWidth>
<DocLineNo>0</DocLineNo>
<LineText>String</LineText>
<PageLineNo>0</PageLineNo>
<PageNo>0</PageNo>
</LineSearchResult>
</Lines>
<OCRResult>String</OCRResult>
<OCRSource>String</OCRSource>
</DocumentSearchResult>
</DocumentSearchResults>
<ResponseStatus xmlns:d2p1="http://schemas.servicestack.net/types">
<d2p1:ErrorCode>String</d2p1:ErrorCode>
<d2p1:Message>String</d2p1:Message>
<d2p1:StackTrace>String</d2p1:StackTrace>
<d2p1:Errors>
<d2p1:ResponseError>
<d2p1:ErrorCode>String</d2p1:ErrorCode>
<d2p1:FieldName>String</d2p1:FieldName>
<d2p1:Message>String</d2p1:Message>
<d2p1:Meta xmlns:d5p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d5p1:KeyValueOfstringstring>
<d5p1:Key>String</d5p1:Key>
<d5p1:Value>String</d5p1:Value>
</d5p1:KeyValueOfstringstring>
</d2p1:Meta>
</d2p1:ResponseError>
</d2p1:Errors>
<d2p1:Meta xmlns:d3p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d3p1:KeyValueOfstringstring>
<d3p1:Key>String</d3p1:Key>
<d3p1:Value>String</d3p1:Value>
</d3p1:KeyValueOfstringstring>
</d2p1:Meta>
</ResponseStatus>
</DocumentSearchResponse>