ClubReady Api

<back to all web services

ContractTextEndpoint

The following routes are available for this service:
GET/sales/agreement/contractGet a contracts HTML verbiageGet the agreements contract in HTML. Uses the Incomplete Agreements Token to identify the contract verbiage, and converts it into HTML, and returns it to the requestor. The header `X-Forwarded-For` is NOT required. It can be set to the IP address of the end user, or left blank.
import Foundation
import ServiceStack

// @ApiResponse(Description="", ResponseType=typeof(ContractTextResponse), StatusCode=200)
public class ContractTextEndpoint : IContractTextEndpoint, IRestrictedApiRequest, Codable
{
    /**
    * IP address of the end user
    */
    // @ApiMember(Description="IP address of the end user", Name="X-Forwarded-For", ParameterType="header")
    public var xForwardedFor:String

    /**
    * Api Authentication Key
    */
    // @ApiMember(Description="Api Authentication Key", IsRequired=true, ParameterType="query")
    public var apiKey:String

    /**
    * ID# of the store to get contract for.
    */
    // @ApiMember(DataType="int", Description="ID# of the store to get contract for.", IsRequired=true, Name="StoreId", ParameterType="query")
    public var storeId:Int?

    public var chainId:Int?
    /**
    * Token for Incomplete Agreement to get details for
    */
    // @ApiMember(DataType="string", Description="Token for Incomplete Agreement to get details for", IsRequired=true, Name="IncompleteAgreementToken", ParameterType="query")
    public var incompleteAgreementToken:String

    public var restrictedId:Int?
    public var restrictedResourceType:RestrictedResourceType

    required public init(){}
}

public enum RestrictedResourceType : String, Codable
{
    case Store
    case Chain
    case User
    case Undefined
}

public class ContractTextResponse : ApiResponse2Base
{
    public var contractHtml:String
    public var incompleteAgreementToken:String

    required public init(){ super.init() }

    private enum CodingKeys : String, CodingKey {
        case contractHtml
        case incompleteAgreementToken
    }

    required public init(from decoder: Decoder) throws {
        try super.init(from: decoder)
        let container = try decoder.container(keyedBy: CodingKeys.self)
        contractHtml = try container.decodeIfPresent(String.self, forKey: .contractHtml)
        incompleteAgreementToken = try container.decodeIfPresent(String.self, forKey: .incompleteAgreementToken)
    }

    public override func encode(to encoder: Encoder) throws {
        try super.encode(to: encoder)
        var container = encoder.container(keyedBy: CodingKeys.self)
        if contractHtml != nil { try container.encode(contractHtml, forKey: .contractHtml) }
        if incompleteAgreementToken != nil { try container.encode(incompleteAgreementToken, forKey: .incompleteAgreementToken) }
    }
}

public class ApiResponse2Base : Codable
{
    public var success:Bool
    public var message:String

    required public init(){}
}


Swift ContractTextEndpoint DTOs

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

HTTP + JSON

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

GET /sales/agreement/contract HTTP/1.1 
Host: www.clubready.com 
Accept: application/json
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: length

{"contractHtml":"String","incompleteAgreementToken":"String","success":false,"message":"String"}