An addon/plugin package to provide KwikNG automated last-mile delivery services in AdonisJS 4.0+
Install from the NPM Registry
$ adonis install adonisjs-kwikng
Import and use
'use strict'
const Kwik = use('Kwik')
const User = use('App/Models/User')
class LogisticsController {
constructor(Event){
this.event = Event
}
static get inject(){
return [
'Event'
]
}
async requestDelivery({ request, params, response }){
let user = await User.find(params.user_id) // get user from database
let response = await Kwik.API.scheduleDeliveryTask({
pickup_delivery_relationship: 0,
payment_method: 131072 /* PAGA wallet payment */,
is_multiple_tasks: 1,
has_pickup: 1,
has_delivery: 1,
timezone: '+60' /* West African Time: +1:00hr from UTC */,
auto_assignment: 0,
layout_type: 0,
team_id: 1 /* get your 'team_id' from your admin dashboard */,
amount: "1240.45", // Naira
total_no_of_tasks: 1 /* get this value from Kwik.API.getExactPricingForDeliveryTask() */,
total_service_charge: 0 /* get this value from Kwik.API.getExactPricingForDeliveryTask() */,
deliveries: [
{
"address": "No 4 Awgu Close, Garki, Area 3, Abuja",
"name": user.business_name,
"latitude": 9.0541091,
"longitude": 7.4349443,
"time": "2020-12-20 12:48:24",
"phone": user.phone, // user phone number
"email": user.email, // user email
"has_return_task": false,
"is_package_insured": 0,
"template_data": [ ]
}
],
pickups: [
{
"address": "Dyzn Clothing LLC",
"name": "Dzyn Babe",
"latitude": 9.0392449,
"longitude": 7.4220623,
"time": "2020-12-20 11:27:11",
"phone": "+2349045739731",
"email": "dzyn.fash.ng@gmail.com"
}
]
});
this.event.fire('mixpanel::event', { key: 'delivery_dispatched' });
return response.status(201).json({
data:response.body.data
})
}
}
module.exports = LogisticsController
MIT
npm i
npm run lint
npm run test
See the CONTRIBUTING.md file for info