1Fetch Client API

<back to all web services

AddSubscription

The following routes are available for this service:
POST/subscription/{EventType}Subscribe to an event with a url we should post to
POST/subscriptionSubscribe to an event with a url we should post to

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

    public constructor(init?: Partial<ApiServiceRequest>) { (Object as any).assign(this, init); }
}

export class ApiServiceResponse implements IServiceResponse
{
    /** @description Information about the response. */
    // @ApiMember(Description="Information about the response.", IsRequired=true)
    public Description: string;

    /** @description Heading or summary of the response. */
    // @ApiMember(Description="Heading or summary of the response.", IsRequired=true)
    public Heading: string;

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

    public constructor(init?: Partial<ApiServiceResponse>) { (Object as any).assign(this, init); }
}

export enum WebhookSubscriptionEventType
{
    DriverOnTheWay = 0,
    ArrivedAtWaypoint = 1,
    DepartedWaypoint = 2,
    OrderCompleted = 3,
    OrderCancelled = 4,
}

export class AddSubscription extends ApiServiceRequest implements ILogRequest
{
    /** @description The event type being subscribed to */
    // @ApiMember(Description="The event type being subscribed to", IsRequired=true)
    public EventType: WebhookSubscriptionEventType;

    /** @description The URL we should post the event data to */
    // @ApiMember(Description="The URL we should post the event data to", IsRequired=true)
    public SubscriptionUrl: string;

    public constructor(init?: Partial<AddSubscription>) { super(init); (Object as any).assign(this, init); }
}

TypeScript AddSubscription DTOs

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

HTTP + XML

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

POST /subscription/{EventType} HTTP/1.1 
Host: api.1fetch.co.za 
Accept: application/xml
Content-Type: application/xml
Content-Length: length

<AddSubscription xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/WebService.ClientServiceModel">
  <ApiKey xmlns="http://schemas.datacontract.org/2004/07/WebService.ClientServiceModel.Base">String</ApiKey>
  <EventType>DriverOnTheWay</EventType>
  <SubscriptionUrl>String</SubscriptionUrl>
</AddSubscription>
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length

<ApiServiceResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/WebService.ClientServiceModel.Base">
  <Description>String</Description>
  <Heading>String</Heading>
  <WasSuccessful>false</WasSuccessful>
</ApiServiceResponse>