Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Example of file-post

...

For each session, first get authenticated with /pl/api/v-1/auth/generate, then use the received token in the header for all the other calls. Like this:

Code Block
# Example 1) Posting JSON (when logged in, we send the token in the header)
curl https://planandgo.di.no/pl/api/v-1/routePlan \
  -H "Content-Type:application/json" \
  -H "X-Auth-Token:olof:5f9a3609a5a295eff861d930a0c75bbee7991842" \
  -d "{ \
    \"companyId\": 1, \
    \"date\": '2015-12-04T00:00:00.000+0100', \
    \"name\": \"Utkjoring uke 9\" \
  }"


# Example 2) posting FILE (when logged in, we send the token in the header)
curl https://planandgo.di.no/pl/api/v-1/file/999999 \
  -H "Content-Type: multipart/form-data" \
  -H "X-Auth-Token: olof:5f9a3609a5a295eff861d930a0c75bbee7991842" \
  -F file=@my_import_file_in_this_dir.csv

Environments

  • DEV: https://dev-planandgo.di.no
  • STAGING: https://staging-planandgo.di.no
  • PROD: https://planandgo.di.no

API-methods

#
Endpoint / DescriptionExample - RequestExample - Response
1


POST /pl/api/v-1/auth/generate

Fetches an login-token that the application can use to gain access to the API.

Get the username/password from DI.


Code Block
{
    "username": "olof",
    "password": "secret123"
}



Code Block
{
	"token": "olof:5f9...842",
	"userId": 23432,
	"customerSystemId": 233,
	"roles: [...]
}


2

🔐

POST /pl/api/v-1/routePlan

Create an empty route plan (for a given distribution date).

companyId: The ID of the transport company. Ask DI for the correct value(s) to use.


Code Block
{
    companyId: 1,
    date: '2015-12-04T00:00:00.000+0100',
    name: 'Utkjoring uke 9'
}



Code Block
{
	id: 344,
	date: '2015-12-04T00:00:00.000+0100',
	name: 'Utkjoring uke 9',
	...
}


3🔐
POST /pl/api/v-1/routePlan/<rp_id>/customerSystem/<cs_id>

Create an empty file (prepare for a file-upload).

Step 1 in file upload.

rp_id: The returned routePlanId from previous call.
cs_id: Ask DI for the correct value to use (or look at the response from /auth/generate)


Code Block
{
    name: 'my-file-name.csv'
}



Code Block
{
	id: 6722,
	name: 'my-file-name.csv',
	...
}


4🔐
POST /pl/api/v-1/file/<f_id>

Upload the content of the file you have prepared.

Filetypes supported:

  • .csv
  • .xls
  • .xlsx

Mimetype: multipart/form-data. Name the file-field: "file". See file specification.

Step 2 in file upload.

f_id: The returned fileId from previous call.



Code Block
{
	status: 'ok'
}


5🔐
GET /pl/api/v-1/customerSystem/<cs_id>/publishedOrders/<yyyy-mm-dd>

Fetch the published orders including the routename of each order.

Included for each order is an estimate for WHEN the order will be delivered. It's a time interval like this: HH:MM-HH:MM.

This will return orders across many routePlans, but only from published plans for the given distribution-date.

(info) Assumes that imported customers/deliveries used the ORDER_ID field.

cs_id: Ask DI for the correct value to use (or look at the response from /auth/generate)


List of orders

Code Block
[
	{
		orderId: '12452',
		routeName: 'Asker',
		timeWindow: '19:29-21:29'
	},
	{
		orderId: '12454',
		routeName: 'Asker',
		timeWindow: '19:37-21:37'
	},
	...
	{
		orderId: '29452',
		routeName: 'Skøyen',
		timeWindow: '18:11-20:11'
	},
	...
]


Usage

When the deliveries are ready on your end

...