1Fetch Client API

<back to all web services

ValidateWaypoints

The following routes are available for this service:
POST/quote/validatewaypointsValidate the waypoints for a client.
import 'package:servicestack/servicestack.dart';

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

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

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

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

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

class ApiServiceResponse implements IServiceResponse, IConvertible
{
    /**
    * Information about the response.
    */
    // @ApiMember(Description="Information about the response.", IsRequired=true)
    String? Description;

    /**
    * Heading or summary of the response.
    */
    // @ApiMember(Description="Heading or summary of the response.", IsRequired=true)
    String? Heading;

    /**
    * Did the intended operation for this response complete successfully?
    */
    // @ApiMember(DataType="boolean", Description="Did the intended operation for this response complete successfully?", IsRequired=true)
    bool? WasSuccessful;

    ApiServiceResponse({this.Description,this.Heading,this.WasSuccessful});
    ApiServiceResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Description = json['Description'];
        Heading = json['Heading'];
        WasSuccessful = json['WasSuccessful'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Description': Description,
        'Heading': Heading,
        'WasSuccessful': WasSuccessful
    };

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

class WaypointValidationInformation implements IConvertible
{
    int? WaypointNumber;
    bool? IsValid;
    List<String>? ErrorMessages;

    WaypointValidationInformation({this.WaypointNumber,this.IsValid,this.ErrorMessages});
    WaypointValidationInformation.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        WaypointNumber = json['WaypointNumber'];
        IsValid = json['IsValid'];
        ErrorMessages = JsonConverters.fromJson(json['ErrorMessages'],'List<String>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'WaypointNumber': WaypointNumber,
        'IsValid': IsValid,
        'ErrorMessages': JsonConverters.toJson(ErrorMessages,'List<String>',context!)
    };

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

class LinkedWaypoint implements IConvertible
{
    int? FromWaypointNumber;
    int? ToWaypointNumber;
    double? FromLatitude;
    double? FromLongitude;
    double? ToLatitude;
    double? ToLongitude;

    LinkedWaypoint({this.FromWaypointNumber,this.ToWaypointNumber,this.FromLatitude,this.FromLongitude,this.ToLatitude,this.ToLongitude});
    LinkedWaypoint.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        FromWaypointNumber = json['FromWaypointNumber'];
        ToWaypointNumber = json['ToWaypointNumber'];
        FromLatitude = JsonConverters.toDouble(json['FromLatitude']);
        FromLongitude = JsonConverters.toDouble(json['FromLongitude']);
        ToLatitude = JsonConverters.toDouble(json['ToLatitude']);
        ToLongitude = JsonConverters.toDouble(json['ToLongitude']);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'FromWaypointNumber': FromWaypointNumber,
        'ToWaypointNumber': ToWaypointNumber,
        'FromLatitude': FromLatitude,
        'FromLongitude': FromLongitude,
        'ToLatitude': ToLatitude,
        'ToLongitude': ToLongitude
    };

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

class WaypointQuoteInformation extends LinkedWaypoint implements IConvertible
{
    /**
    * Distance between waypoints as a number
    */
    // @ApiMember(Description="Distance between waypoints as a number")
    double? Distance;

    /**
    * String formatted distance
    */
    // @ApiMember(Description="String formatted distance")
    String? DistanceValue;

    bool? WaypointValid;
    String? Message;
    List<String>? ErrorDetails;
    /**
    * Caculated price between waypoints excluding vat
    */
    // @ApiMember(Description="Caculated price between waypoints excluding vat")
    double? Price;

    /**
    * Price excluding vat formatted as a string rand value
    */
    // @ApiMember(Description="Price excluding vat formatted as a string rand value")
    String? PriceValue;

    /**
    * The price between waypoints including vat
    */
    // @ApiMember(Description="The price between waypoints including vat")
    double? PriceWithVAT;

    /**
    * The price including vat formatted as a rand value string
    */
    // @ApiMember(Description="The price including vat formatted as a rand value string")
    String? PriceValueWithVAT;

    WaypointQuoteInformation({this.Distance,this.DistanceValue,this.WaypointValid,this.Message,this.ErrorDetails,this.Price,this.PriceValue,this.PriceWithVAT,this.PriceValueWithVAT});
    WaypointQuoteInformation.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        Distance = JsonConverters.toDouble(json['Distance']);
        DistanceValue = json['DistanceValue'];
        WaypointValid = json['WaypointValid'];
        Message = json['Message'];
        ErrorDetails = JsonConverters.fromJson(json['ErrorDetails'],'List<String>',context!);
        Price = JsonConverters.toDouble(json['Price']);
        PriceValue = json['PriceValue'];
        PriceWithVAT = JsonConverters.toDouble(json['PriceWithVAT']);
        PriceValueWithVAT = json['PriceValueWithVAT'];
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'Distance': Distance,
        'DistanceValue': DistanceValue,
        'WaypointValid': WaypointValid,
        'Message': Message,
        'ErrorDetails': JsonConverters.toJson(ErrorDetails,'List<String>',context!),
        'Price': Price,
        'PriceValue': PriceValue,
        'PriceWithVAT': PriceWithVAT,
        'PriceValueWithVAT': PriceValueWithVAT
    });

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

class ValidateWaypointsResponse extends ApiServiceResponse implements IConvertible
{
    /**
    * List with validation information for each waypoint
    */
    // @ApiMember(Description="List with validation information for each waypoint")
    List<WaypointValidationInformation>? WaypointValidations;

    /**
    * The total distance for the order
    */
    // @ApiMember(Description="The total distance for the order")
    double? TotalDistance;

    /**
    * The total distance for the order, formatted as a string
    */
    // @ApiMember(Description="The total distance for the order, formatted as a string")
    String? TotalDistanceValue;

    /**
    * List of information for pricing etc between each waypoint
    */
    // @ApiMember(Description="List of information for pricing etc between each waypoint")
    List<WaypointQuoteInformation>? Waypoints;

    /**
    * Is there an issue for the waypoints details specified?
    */
    // @ApiMember(Description="Is there an issue for the waypoints details specified?")
    bool? WaypointIssue;

    ValidateWaypointsResponse({this.WaypointValidations,this.TotalDistance,this.TotalDistanceValue,this.Waypoints,this.WaypointIssue});
    ValidateWaypointsResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        WaypointValidations = JsonConverters.fromJson(json['WaypointValidations'],'List<WaypointValidationInformation>',context!);
        TotalDistance = JsonConverters.toDouble(json['TotalDistance']);
        TotalDistanceValue = json['TotalDistanceValue'];
        Waypoints = JsonConverters.fromJson(json['Waypoints'],'List<WaypointQuoteInformation>',context!);
        WaypointIssue = json['WaypointIssue'];
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'WaypointValidations': JsonConverters.toJson(WaypointValidations,'List<WaypointValidationInformation>',context!),
        'TotalDistance': TotalDistance,
        'TotalDistanceValue': TotalDistanceValue,
        'Waypoints': JsonConverters.toJson(Waypoints,'List<WaypointQuoteInformation>',context!),
        'WaypointIssue': WaypointIssue
    });

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

class RequestQuoteWaypoint implements IRequestWaypoint, IConvertible
{
    /**
    * Number of waypoint for ordering
    */
    // @ApiMember(Description="Number of waypoint for ordering", IsRequired=true)
    int? WaypointNumber;

    /**
    * Waypoint Latitude
    */
    // @ApiMember(Description="Waypoint Latitude", IsRequired=true)
    double? Latitude;

    /**
    * Waypoint Longitude
    */
    // @ApiMember(Description="Waypoint Longitude", IsRequired=true)
    double? Longitude;

    /**
    * Name of contact person at waypoint
    */
    // @ApiMember(Description="Name of contact person at waypoint", IsRequired=true)
    String? ContactName;

    /**
    * Telephone number of contact person at waypoint
    */
    // @ApiMember(Description="Telephone number of contact person at waypoint", IsRequired=true)
    String? ContactNumber;

    /**
    * Instructions for driver to follow at waypoint
    */
    // @ApiMember(Description="Instructions for driver to follow at waypoint", IsRequired=true)
    String? DeliveryInstructions;

    /**
    * Waypoint address
    */
    // @ApiMember(Description="Waypoint address", IsRequired=true)
    String? Address;

    RequestQuoteWaypoint({this.WaypointNumber,this.Latitude,this.Longitude,this.ContactName,this.ContactNumber,this.DeliveryInstructions,this.Address});
    RequestQuoteWaypoint.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        WaypointNumber = json['WaypointNumber'];
        Latitude = JsonConverters.toDouble(json['Latitude']);
        Longitude = JsonConverters.toDouble(json['Longitude']);
        ContactName = json['ContactName'];
        ContactNumber = json['ContactNumber'];
        DeliveryInstructions = json['DeliveryInstructions'];
        Address = json['Address'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'WaypointNumber': WaypointNumber,
        'Latitude': Latitude,
        'Longitude': Longitude,
        'ContactName': ContactName,
        'ContactNumber': ContactNumber,
        'DeliveryInstructions': DeliveryInstructions,
        'Address': Address
    };

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

class ValidateWaypoints extends ApiServiceRequest implements ILogRequest, IConvertible
{
    /**
    * Array of waypoints
    */
    // @ApiMember(Description="Array of waypoints", IsRequired=true)
    List<RequestQuoteWaypoint>? Waypoints;

    /**
    * Set this to true to prevent while testing the API.
    */
    // @ApiMember(Description="Set this to true to prevent while testing the API.", IsRequired=true)
    bool? Test;

    ValidateWaypoints({this.Waypoints,this.Test});
    ValidateWaypoints.fromJson(Map<String, dynamic> json) { fromMap(json); }

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

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'Waypoints': JsonConverters.toJson(Waypoints,'List<RequestQuoteWaypoint>',context!),
        'Test': Test
    });

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

TypeContext _ctx = TypeContext(library: '1fetch.api.client.prod.86degrees.com', types: <String, TypeInfo> {
    'ApiServiceRequest': TypeInfo(TypeOf.Class, create:() => ApiServiceRequest()),
    'ApiServiceResponse': TypeInfo(TypeOf.Class, create:() => ApiServiceResponse()),
    'WaypointValidationInformation': TypeInfo(TypeOf.Class, create:() => WaypointValidationInformation()),
    'LinkedWaypoint': TypeInfo(TypeOf.Class, create:() => LinkedWaypoint()),
    'WaypointQuoteInformation': TypeInfo(TypeOf.Class, create:() => WaypointQuoteInformation()),
    'ValidateWaypointsResponse': TypeInfo(TypeOf.Class, create:() => ValidateWaypointsResponse()),
    'List<WaypointValidationInformation>': TypeInfo(TypeOf.Class, create:() => <WaypointValidationInformation>[]),
    'List<WaypointQuoteInformation>': TypeInfo(TypeOf.Class, create:() => <WaypointQuoteInformation>[]),
    'RequestQuoteWaypoint': TypeInfo(TypeOf.Class, create:() => RequestQuoteWaypoint()),
    'ValidateWaypoints': TypeInfo(TypeOf.Class, create:() => ValidateWaypoints()),
    'List<RequestQuoteWaypoint>': TypeInfo(TypeOf.Class, create:() => <RequestQuoteWaypoint>[]),
});

Dart ValidateWaypoints DTOs

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

HTTP + OTHER

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

POST /quote/validatewaypoints HTTP/1.1 
Host: 1fetch.api.client.prod.86degrees.com 
Accept: text/jsonl
Content-Type: text/jsonl
Content-Length: length

{"Waypoints":[{"WaypointNumber":0,"Latitude":0,"Longitude":0,"ContactName":"String","ContactNumber":"String","DeliveryInstructions":"String","Address":"String"}],"Test":false,"ApiKey":"String"}
HTTP/1.1 200 OK
Content-Type: text/jsonl
Content-Length: length

{Unable to show example output for type 'ValidateWaypointsResponse' using the custom 'other' filter}One or more errors occurred. (Object reference not set to an instance of an object.)