Cochrane+ App API

<back to all web services

EndJourney

Requires Authentication
The following routes are available for this service:
POST/journey/end
import 'package:servicestack/servicestack.dart';

class ApiServiceRequest implements IServiceRequest, IHasApiKey, IHasDeviceInfo, IConvertible
{
    /**
    * The API Key required for authentication
    */
    // @ApiMember(DataType="string", Description="The API Key required for authentication", IsRequired=true)
    String? apiKey;

    /**
    * Latitude of the user making this request
    */
    // @ApiMember(DataType="double", Description="Latitude of the user making this request")
    double? latitude;

    /**
    * Longitude of the user making this request
    */
    // @ApiMember(DataType="double", Description="Longitude of the user making this request")
    double? longitude;

    ApiServiceRequest({this.apiKey,this.latitude,this.longitude});
    ApiServiceRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        apiKey = json['apiKey'];
        latitude = JsonConverters.toDouble(json['latitude']);
        longitude = JsonConverters.toDouble(json['longitude']);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'apiKey': apiKey,
        'latitude': latitude,
        'longitude': longitude
    };

    getTypeName() => "ApiServiceRequest";
    TypeContext? context = _ctx;
}

class ApiServiceResponse implements IServiceResponse, IConvertible
{
    String? description;
    String? heading;
    bool? wasSuccessful;
    dynamic? modelState;

    ApiServiceResponse({this.description,this.heading,this.wasSuccessful,this.modelState});
    ApiServiceResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        description = json['description'];
        heading = json['heading'];
        wasSuccessful = json['wasSuccessful'];
        modelState = JsonConverters.fromJson(json['modelState'],'dynamic',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'description': description,
        'heading': heading,
        'wasSuccessful': wasSuccessful,
        'modelState': JsonConverters.toJson(modelState,'dynamic',context!)
    };

    getTypeName() => "ApiServiceResponse";
    TypeContext? context = _ctx;
}

class JourneyPointData implements IConvertible
{
    double? latitude;
    double? longitude;
    String? address;

    JourneyPointData({this.latitude,this.longitude,this.address});
    JourneyPointData.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        latitude = JsonConverters.toDouble(json['latitude']);
        longitude = JsonConverters.toDouble(json['longitude']);
        address = json['address'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'latitude': latitude,
        'longitude': longitude,
        'address': address
    };

    getTypeName() => "JourneyPointData";
    TypeContext? context = _ctx;
}

class MeetingData implements IConvertible
{
    int? meetingId;
    String? startTime;
    String? arrivalTime;
    String? leftTime;
    String? duration;
    bool? showTimeFields;
    String? arrivalStatus;
    String? email;
    bool? hasEmail;
    String? contactName;
    double? latitude;
    double? longitude;
    String? location;
    String? address;
    String? subject;
    String? description;
    String? endTime;
    String? company;
    String? contactNumber;
    bool? hasContactNumber;
    bool? hasLocation;
    String? setBy;
    String? virtualOrInPerson;

    MeetingData({this.meetingId,this.startTime,this.arrivalTime,this.leftTime,this.duration,this.showTimeFields,this.arrivalStatus,this.email,this.hasEmail,this.contactName,this.latitude,this.longitude,this.location,this.address,this.subject,this.description,this.endTime,this.company,this.contactNumber,this.hasContactNumber,this.hasLocation,this.setBy,this.virtualOrInPerson});
    MeetingData.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        meetingId = json['meetingId'];
        startTime = json['startTime'];
        arrivalTime = json['arrivalTime'];
        leftTime = json['leftTime'];
        duration = json['duration'];
        showTimeFields = json['showTimeFields'];
        arrivalStatus = json['arrivalStatus'];
        email = json['email'];
        hasEmail = json['hasEmail'];
        contactName = json['contactName'];
        latitude = JsonConverters.toDouble(json['latitude']);
        longitude = JsonConverters.toDouble(json['longitude']);
        location = json['location'];
        address = json['address'];
        subject = json['subject'];
        description = json['description'];
        endTime = json['endTime'];
        company = json['company'];
        contactNumber = json['contactNumber'];
        hasContactNumber = json['hasContactNumber'];
        hasLocation = json['hasLocation'];
        setBy = json['setBy'];
        virtualOrInPerson = json['virtualOrInPerson'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'meetingId': meetingId,
        'startTime': startTime,
        'arrivalTime': arrivalTime,
        'leftTime': leftTime,
        'duration': duration,
        'showTimeFields': showTimeFields,
        'arrivalStatus': arrivalStatus,
        'email': email,
        'hasEmail': hasEmail,
        'contactName': contactName,
        'latitude': latitude,
        'longitude': longitude,
        'location': location,
        'address': address,
        'subject': subject,
        'description': description,
        'endTime': endTime,
        'company': company,
        'contactNumber': contactNumber,
        'hasContactNumber': hasContactNumber,
        'hasLocation': hasLocation,
        'setBy': setBy,
        'virtualOrInPerson': virtualOrInPerson
    };

    getTypeName() => "MeetingData";
    TypeContext? context = _ctx;
}

class JourneyNoteData implements IConvertible
{
    String? note;
    String? date;

    JourneyNoteData({this.note,this.date});
    JourneyNoteData.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        note = json['note'];
        date = json['date'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'note': note,
        'date': date
    };

    getTypeName() => "JourneyNoteData";
    TypeContext? context = _ctx;
}

class JourneyData implements IConvertible
{
    int? journeyId;
    String? title;
    String? startTime;
    String? endTime;
    double? distance;
    String? distanceFormatted;
    String? routePolyline;
    JourneyPointData? startPoint;
    JourneyPointData? endPoint;
    MeetingData? meetingData;
    List<JourneyNoteData>? journeyNotes;

    JourneyData({this.journeyId,this.title,this.startTime,this.endTime,this.distance,this.distanceFormatted,this.routePolyline,this.startPoint,this.endPoint,this.meetingData,this.journeyNotes});
    JourneyData.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        journeyId = json['journeyId'];
        title = json['title'];
        startTime = json['startTime'];
        endTime = json['endTime'];
        distance = JsonConverters.toDouble(json['distance']);
        distanceFormatted = json['distanceFormatted'];
        routePolyline = json['routePolyline'];
        startPoint = JsonConverters.fromJson(json['startPoint'],'JourneyPointData',context!);
        endPoint = JsonConverters.fromJson(json['endPoint'],'JourneyPointData',context!);
        meetingData = JsonConverters.fromJson(json['meetingData'],'MeetingData',context!);
        journeyNotes = JsonConverters.fromJson(json['journeyNotes'],'List<JourneyNoteData>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'journeyId': journeyId,
        'title': title,
        'startTime': startTime,
        'endTime': endTime,
        'distance': distance,
        'distanceFormatted': distanceFormatted,
        'routePolyline': routePolyline,
        'startPoint': JsonConverters.toJson(startPoint,'JourneyPointData',context!),
        'endPoint': JsonConverters.toJson(endPoint,'JourneyPointData',context!),
        'meetingData': JsonConverters.toJson(meetingData,'MeetingData',context!),
        'journeyNotes': JsonConverters.toJson(journeyNotes,'List<JourneyNoteData>',context!)
    };

    getTypeName() => "JourneyData";
    TypeContext? context = _ctx;
}

class EndJourneyResponse extends ApiServiceResponse implements IConvertible
{
    JourneyData? journey;

    EndJourneyResponse({this.journey});
    EndJourneyResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        journey = JsonConverters.fromJson(json['journey'],'JourneyData',context!);
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'journey': JsonConverters.toJson(journey,'JourneyData',context!)
    });

    getTypeName() => "EndJourneyResponse";
    TypeContext? context = _ctx;
}

class EndJourney extends ApiServiceRequest implements IConvertible
{
    int? journeyId;

    EndJourney({this.journeyId});
    EndJourney.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        journeyId = json['journeyId'];
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'journeyId': journeyId
    });

    getTypeName() => "EndJourney";
    TypeContext? context = _ctx;
}

TypeContext _ctx = TypeContext(library: 'cochraneplus_api_dev.happen.zone', types: <String, TypeInfo> {
    'ApiServiceRequest': TypeInfo(TypeOf.Class, create:() => ApiServiceRequest()),
    'ApiServiceResponse': TypeInfo(TypeOf.Class, create:() => ApiServiceResponse()),
    'JourneyPointData': TypeInfo(TypeOf.Class, create:() => JourneyPointData()),
    'MeetingData': TypeInfo(TypeOf.Class, create:() => MeetingData()),
    'JourneyNoteData': TypeInfo(TypeOf.Class, create:() => JourneyNoteData()),
    'JourneyData': TypeInfo(TypeOf.Class, create:() => JourneyData()),
    'List<JourneyNoteData>': TypeInfo(TypeOf.Class, create:() => <JourneyNoteData>[]),
    'EndJourneyResponse': TypeInfo(TypeOf.Class, create:() => EndJourneyResponse()),
    'EndJourney': TypeInfo(TypeOf.Class, create:() => EndJourney()),
});

Dart EndJourney 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 /journey/end HTTP/1.1 
Host: cochraneplus-api-dev.happen.zone 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	journeyId: 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: {}
}