Trendsic Platform Service

<back to all web services

DocumentSearchRequest

Requires Authentication
Requires any of the roles:Agent, Administrator
The following routes are available for this service:
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

HTTP + 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"}}}