POST | /dbs | Add a DBS Search |
---|
import Foundation
import ServiceStack
// @DataContract
public class AddDbsSearch : BaseRequest
{
// @DataMember
public var request:AddDbsSearchRequest
required public init(){ super.init() }
private enum CodingKeys : String, CodingKey {
case request
}
required public init(from decoder: Decoder) throws {
try super.init(from: decoder)
let container = try decoder.container(keyedBy: CodingKeys.self)
request = try container.decodeIfPresent(AddDbsSearchRequest.self, forKey: .request)
}
public override func encode(to encoder: Encoder) throws {
try super.encode(to: encoder)
var container = encoder.container(keyedBy: CodingKeys.self)
if request != nil { try container.encode(request, forKey: .request) }
}
}
// @DataContract
public class BaseRequest : IBaseRequest, Codable
{
/**
* The authentication credentials
*/
// @DataMember
// @ApiMember(Description="The authentication credentials", IsRequired=true, ParameterType="header, body")
public var authentication:Authentication
required public init(){}
}
// @DataContract
public class Authentication : Codable
{
/**
* The API User ID provided by us when you signed up to use our API
*/
// @DataMember
// @ApiMember(Description="The API User ID provided by us when you signed up to use our API", IsRequired=true, ParameterType="header, body")
public var apiUserId:String
/**
* The API User Key provided by us when you signed up to use our API
*/
// @DataMember
// @ApiMember(Description="The API User Key provided by us when you signed up to use our API", IsRequired=true, ParameterType="header, body")
public var apiUserKey:String
required public init(){}
}
public class AddDbsSearchRequest : Codable
{
/**
* The full name of the applicant
*/
// @ApiMember(Description="The full name of the applicant", IsRequired=true)
public var name:String
/**
* The date of birth for the applicant (DD/MM/YYYY format)
*/
// @ApiMember(Description="The date of birth for the applicant (DD/MM/YYYY format)", IsRequired=true)
public var dateOfBirth:String
/**
* The email address of the applicant
*/
// @ApiMember(Description="The email address of the applicant", IsRequired=true)
public var email:String
/**
* The applicant's mobile phone number in international format (e.g. '+447123456789')
*/
// @ApiMember(Description="The applicant's mobile phone number in international format (e.g. '+447123456789')", IsRequired=true)
public var mobileInternational:String
/**
* The country where the job is located
*/
// @ApiMember(Description="The country where the job is located", IsRequired=true)
public var jobLocation:String
/**
* The disclosure level of the DBS required
*/
// @ApiMember(Description="The disclosure level of the DBS required", IsRequired=true)
public var disclosureLevel:String
/**
* Your reference, if any
*/
// @ApiMember(Description="Your reference, if any")
public var reference:String
/**
* If this is specified, the search will be created for the specified sub user, otherwise it will be created in the main user account
*/
// @ApiMember(Description="If this is specified, the search will be created for the specified sub user, otherwise it will be created in the main user account")
public var subUserName:String
/**
* If the search should be linked to other searches, specify the them here
*/
// @ApiMember(Description="If the search should be linked to other searches, specify the them here")
public var linkedTo:ArrayOfLinkedTo
required public init(){}
}
public class ArrayOfLinkedTo : List<LinkedTo>
{
required public init(){ super.init() }
required public init(from decoder: Decoder) throws {
try super.init(from: decoder)
}
public override func encode(to encoder: Encoder) throws {
try super.encode(to: encoder)
}
}
public class LinkedTo : Codable
{
public var clientId:Int?
public var id:Int?
public var type:String
public var subtype:String
public var status:String
public var Description:String
public var isArchived:Bool?
public var name:String
public var date:Date?
required public init(){}
}
// @DataContract
public class AddDbsSearchResponse : Codable
{
// @DataMember
public var data:AddDbsSearchData
required public init(){}
}
public class AddDbsSearchData : BaseResponse, IBaseSearchResponse
{
public var linkedTo:ArrayOfLinkedTo
public var summary:DbsSearchSummary
required public init(){ super.init() }
private enum CodingKeys : String, CodingKey {
case linkedTo
case summary
}
required public init(from decoder: Decoder) throws {
try super.init(from: decoder)
let container = try decoder.container(keyedBy: CodingKeys.self)
linkedTo = try container.decodeIfPresent(ArrayOfLinkedTo.self, forKey: .linkedTo)
summary = try container.decodeIfPresent(DbsSearchSummary.self, forKey: .summary)
}
public override func encode(to encoder: Encoder) throws {
try super.encode(to: encoder)
var container = encoder.container(keyedBy: CodingKeys.self)
if linkedTo != nil { try container.encode(linkedTo, forKey: .linkedTo) }
if summary != nil { try container.encode(summary, forKey: .summary) }
}
}
public class BaseResponse : IBaseDataResponse, IHasResponseStatus, Codable
{
/**
* The status of the response
*/
// @ApiMember(Description="The status of the response")
public var responseStatus:ResponseStatus
required public init(){}
}
public class ArrayOfResponseError : List<ResponseError>
{
required public init(){ super.init() }
required public init(from decoder: Decoder) throws {
try super.init(from: decoder)
}
public override func encode(to encoder: Encoder) throws {
try super.encode(to: encoder)
}
}
public class DbsSearchSummary : Codable
{
public var id:Int
public var dateSearched:Date
public var dateUpdated:Date
public var status:String
public var disclosureStatus:String
public var isApplicantInfoCompleted:Bool
public var isIdCheckCompleted:Bool
public var isApplicationCompleted:Bool
public var isApplicationSubmitted:Bool
public var isApplicationDisclosed:Bool
public var disclosureLevel:String
public var applicantInformation:ApplicantInformation
required public init(){}
}
public class ApplicantInformation : Codable
{
public var name:String
public var dateOfBirth:String
public var email:String
public var mobileInternational:String
public var jobLocation:String
public var reference:String
required public init(){}
}
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.
POST /dbs HTTP/1.1
Host: api.sanctionssearch.com
Accept: application/json
Content-Type: application/json
Content-Length: length
{"request":{"name":"String","dateOfBirth":"String","email":"String","mobileInternational":"String","jobLocation":"String","disclosureLevel":"String","reference":"String","subUserName":"String","linkedTo":[{"clientId":0,"id":0,"type":"String","subtype":"String","status":"String","description":"String","isArchived":false,"name":"String","date":"\/Date(-62135596800000-0000)\/"}]},"authentication":{"apiUserId":"String","apiUserKey":"String"}}
HTTP/1.1 200 OK Content-Type: application/json Content-Length: length {"data":{"linkedTo":[{"clientId":0,"id":0,"type":"String","subtype":"String","status":"String","description":"String","isArchived":false,"name":"String","date":"\/Date(-62135596800000-0000)\/"}],"summary":{"id":0,"dateSearched":"\/Date(-62135596800000-0000)\/","dateUpdated":"\/Date(-62135596800000-0000)\/","status":"String","disclosureStatus":"String","isApplicantInfoCompleted":false,"isIdCheckCompleted":false,"isApplicationCompleted":false,"isApplicationSubmitted":false,"isApplicationDisclosed":false,"disclosureLevel":"String","applicantInformation":{"name":"String","dateOfBirth":"String","email":"String","mobileInternational":"String","jobLocation":"String","reference":"String"}},"responseStatus":{"errorCode":"String","message":"String","stackTrace":"String","errors":[{"errorCode":"String","fieldName":"String","message":"String","meta":{"String":"String"}}],"meta":{"String":"String"}}}}