| GET | /{Brand}/question/{TemplateGuid}/{QuestionGuid} | ||
|---|---|---|---|
| GET | /{Brand}/question/{TemplateGuid}/{QuestionGuid}/page/{PageNumber} | ||
| GET | /{Brand}/question/{TemplateGuid}/{QuestionGuid}/{ParsedRoot*}/folder/revisited/{FolderBrowser*} | ||
| GET | /{Brand}/question/{TemplateGuid}/{QuestionGuid}/{ParsedRoot*}/folder/revisited/{FolderBrowser*}/page/{PageNumber} | ||
| GET | /{Brand}/question/{TemplateGuid}/{QuestionGuid}/{ParsedRoot*}/folder/revisited/{FolderBrowser*}/search/{SearchTerm} | ||
| GET | /{Brand}/question/{TemplateGuid}/{QuestionGuid}/{ParsedRoot*}/folder/revisited/{FolderBrowser*}/search/{SearchTerm}/page/{PageNumber} |
import java.math.*
import java.util.*
import net.servicestack.client.*
open class GetQuestion : QuestionRequestDto()
{
var ParsedRoot:String? = null
var SearchTerm:String? = null
var PageNumber:Int? = null
}
open class QuestionRequestDto : RequestBase()
{
var TemplateGuid:String? = null
var QuestionGuid:String? = null
var Parent:String? = null
var FolderBrowser:String? = null
}
open class RequestBase : DtoBase()
{
}
open class DtoBase
{
var Brand:Brand? = null
}
enum class Brand
{
Desktop,
Hp,
Kyocera,
NeaScan,
Samsung,
FujiXerox,
Ta,
Utax,
Epson,
ScanFront400,
Sharp,
Ricoh,
FujiFilm,
}
open class GetQuestionResponse : ScanResponseBase()
{
var Question:IClientQuestion? = null
var RegexMatches:Boolean? = null
var RegexHint:String? = null
var SelectedFolder:String? = null
var LoggedInUser:IUser? = null
var MetadataParser:IMetadataParserEx? = null
var ParsedRoot:String? = null
var FolderBrowser:String? = null
var Parent:String? = null
var SearchTerm:String? = null
var PageNumber:Int? = null
}
open class ScanResponseBase : ResponseBase()
{
var Template:IClientTemplate? = null
var GlobalQuestions:ArrayList<IClientQuestion> = ArrayList<IClientQuestion>()
var CanEnableScanButton:Boolean? = null
}
open class ResponseBase : DtoBase()
{
var SelectedUiLanguage:String? = null
var svSession:String? = null
var Title:String? = null
var PageTip:String? = null
var NewBrowser:Boolean? = null
var ScanFront400TA:Boolean? = null
var ScanFront400UTAX:Boolean? = null
}
open interface IClientTemplate
{
var Description:String?
var Icon:ByteArray?
var ModificationInfo:ITemplateModificationInfo?
var Name:String?
var Questions:ArrayList<IClientQuestion>?
var Template:ITemplate?
var TemplateGuid:String?
}
open interface ITemplateModificationInfo
{
var Guid:String?
var TemplateModificationDateTime:Date?
var IconModificationDateTime:Date?
}
open interface IClientQuestion : ITemplateQuestion
{
var QuestionGuid:String?
var ValueDisplayed:String?
var ValueReturned:String?
var Answered:Boolean?
var RegexMatches:Boolean?
var RegexHint:String?
}
open interface ITemplate : IStatus
{
var TemplateVersion:String?
var ScannerVisionVersion:String?
var Guid:String?
var BeginScript:String?
var EndScript:String?
var TemplateType:TemplateType?
var General:IGeneral?
var Capture:ICapture?
var XmlMetadataImport:IXmlMetadataImport?
var Notifications:INotifications?
var Validator:IValidator?
}
enum class TemplateType
{
Workflow,
FreeForm,
}
open interface IGeneral : IInterface
{
var Name:String?
var Description:String?
var Icon:String?
var Schedule:ITemplateSchedule?
var Rejection:IRejection?
var BadDocumentRejection:IBadDocumentRejection?
var PdfLoadResolution:PdfLoadResolution?
}
open interface ITemplateSchedule : IInterface
{
var Time:TimeSpan?
var EndTime:TimeSpan?
var NoEndTime:Boolean?
var Type:TemplateScheduleType?
}
enum class TemplateScheduleType
{
Interval,
Fixed,
}
open interface IRejection
{
var RejectAfter:Int?
var RejectionPath:String?
var ShareCredentials:ICredentials?
}
open interface ICredentials : IInterface
{
var Username:String?
var Password:String?
}
open interface IBadDocumentRejection : IStatus
{
var RejectionPath:String?
var ShareCredentials:ICredentials?
}
enum class PdfLoadResolution
{
Default,
Dpi100,
Dpi150,
Dpi200,
Dpi300,
Dpi400,
Dpi500,
Dpi600,
}
open interface ICapture : IInterface
{
var CaptureSources:ReadOnlyCollection<ICaptureSource>?
}
open interface ICaptureSource : IStatus
{
}
open interface IXmlMetadataImport : IStatus
{
var SampleDocumentName:String?
var TagMappings:ReadOnlyCollection<IXmlMetadataImportTagMapping>?
var NamespaceMappings:ReadOnlyCollection<IXmlMetadataImportNamespaceMapping>?
}
open interface IXmlMetadataImportTagMapping : IInterface
{
var XPathExpression:String?
var Metadata:IStringMetadata?
}
open interface IStringMetadata : IMetadata
{
var IsSecure:Boolean?
var SampleValue:String?
var Value:String?
}
open interface IXmlMetadataImportNamespaceMapping : IInterface
{
var Prefix:String?
var Name:String?
}
open interface INotifications : IStatus
{
var Notifications:ReadOnlyCollection<INotification>?
}
open interface INotification : IStatus
{
var Description:String?
var To:String?
var Subject:String?
var Body:String?
var Cc:String?
var Bcc:String?
var NotificationType:NotificationType?
}
enum class NotificationType
{
FailureOnly,
SuccessOnly,
Always,
}
open interface IValidator
{
var ValidationErrors:IValidationErrors?
var IsValid:Boolean?
}
open interface IValidationErrors
{
var Errors:ReadOnlyCollection<IValidationError>?
}
open interface IValidationError
{
var Property:String?
var ErrorMessage:String?
}
open interface IUser : IIdTemplatesItem
{
var Groups:ReadOnlyCollection<IUserGroup>?
var EmailAddress:String?
var HasPassword:Boolean?
var HomeFolder:String?
var Password:String?
var SbcUser:Boolean?
}
open interface IUserGroup : IIdTemplatesItem, IGroup
{
var Users:ReadOnlyCollection<IUser>?
}
open interface IMetadataParserEx : IMetadataParser
{
}
To override the Content-type in your clients, use the HTTP Accept Header, append the .json suffix or ?format=json
To embed the response in a jsonp callback, append ?callback=myCallback
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
GET /{Brand}/question/{TemplateGuid}/{QuestionGuid} HTTP/1.1
Host: buildmax.org
Accept: application/json
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: length
{"RegexMatches":false,"RegexHint":"String","SelectedFolder":"String","ParsedRoot":"String","FolderBrowser":"String","Parent":"String","SearchTerm":"String","PageNumber":0,"CanEnableScanButton":true,"SelectedUiLanguage":"String","svSession":"String","Title":"String","PageTip":"String","NewBrowser":false,"ScanFront400TA":false,"ScanFront400UTAX":false,"Brand":"Desktop"}