Cochrane+ App API

<back to all web services

CreateDebrief

Requires Authentication
The following routes are available for this service:
POST/debrief/create
import Foundation
import ServiceStack

public class CreateDebrief : ApiServiceRequest
{
    public var meetingId:Int

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

    private enum CodingKeys : String, CodingKey {
        case meetingId
    }

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

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

public class ApiServiceRequest : IServiceRequest, IHasApiKey, IHasDeviceInfo, Codable
{
    /**
    * The API Key required for authentication
    */
    // @ApiMember(DataType="string", Description="The API Key required for authentication", IsRequired=true)
    public var apiKey:String

    /**
    * Latitude of the user making this request
    */
    // @ApiMember(DataType="double", Description="Latitude of the user making this request")
    public var latitude:Double

    /**
    * Longitude of the user making this request
    */
    // @ApiMember(DataType="double", Description="Longitude of the user making this request")
    public var longitude:Double

    required public init(){}
}

public class CreateDebriefResponse : ApiServiceResponse
{
    public var debrief:DebriefData

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

    private enum CodingKeys : String, CodingKey {
        case debrief
    }

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

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

public class ApiServiceResponse : IServiceResponse, Codable
{
    public var Description:String
    public var heading:String
    public var wasSuccessful:Bool
    //modelState:Object ignored. Type could not be extended in Swift

    required public init(){}
}

public class DebriefData : Codable
{
    public var hasAiPermissions:Bool
    public var id:Int
    public var meeting:MeetingData
    public var dateCreated:String
    public var lastUpdated:String
    public var completed:Bool
    public var hasAudio:Bool
    public var companyName:String
    public var meetingTime:String
    public var address:String
    public var feedback:String
    public var research:String
    public var nextSteps:String
    public var opportunities:String
    public var personnel:String
    public var group:String
    public var industry:String
    public var newContacts:[NewContactData] = []
    public var ratingCommentDetails:[DebriefRatingCommentDetail] = []
    public var hasComments:Bool

    required public init(){}
}

public class MeetingData : Codable
{
    public var meetingId:Int
    public var startTime:String
    public var arrivalTime:String
    public var leftTime:String
    public var duration:String
    public var showTimeFields:Bool
    public var arrivalStatus:String
    public var email:String
    public var hasEmail:Bool
    public var contactName:String
    public var latitude:Double
    public var longitude:Double
    public var location:String
    public var address:String
    public var subject:String
    public var Description:String
    public var endTime:String
    public var company:String
    public var contactNumber:String
    public var hasContactNumber:Bool
    public var hasLocation:Bool
    public var setBy:String
    public var virtualOrInPerson:String

    required public init(){}
}

public class NewContactData : Codable
{
    public var name:String
    public var jobTitle:String
    public var companyName:String
    public var emailAddress:String
    public var contactNumber:String

    required public init(){}
}

public class DebriefRatingCommentDetail : Codable
{
    public var managerId:Int
    public var name:String
    public var title:String
    public var reviewedDate:String
    public var rating:Int
    public var comments:String

    required public init(){}
}


Swift CreateDebrief DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv

HTTP + JSV

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

POST /debrief/create HTTP/1.1 
Host: cochraneplus-api-dev.happen.zone 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	meetingId: 0,
	apiKey: String,
	latitude: 0,
	longitude: 0
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	description: String,
	heading: String,
	wasSuccessful: False,
	modelState: {}
}