adonisjs-kwikng

An addon/plugin package to provide KwikNG automated last-mile delivery services in AdonisJS 4.1+

Usage no npm install needed!

<script type="module">
  import adonisjsKwikng from 'https://cdn.skypack.dev/adonisjs-kwikng';
</script>

README

adonis-kwikng

An addon/plugin package to provide KwikNG automated last-mile delivery services in AdonisJS 4.0+

NPM Version Build Status Coveralls

Getting Started

Install from the NPM Registry


   $ adonis install adonisjs-kwikng

Usage

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, response }){
      
          let user = await User.find(1) // get user from database

          let response = await Kwik.API.scheduleDeliveryTask({
                  insurance_amount: 0, 
                  pickup_delivery_relationship: 0, 
                  fleet_id:"", 
                  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,
                  amount: "1240.45", // Naira
                  total_no_of_tasks: 1,
                  total_service_charge: 23,
                  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
                      "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",
                      "template_data": [ ]
                    }
                  ]
          
          });
          
          this.event.fire('mixpanel::event', { key: 'deliveryDispatched' });
          
          return response.status(201).json({
             data:response.body.data
          })
      }
  }
  
  module.exports = LogisticsController

License

MIT

Running Tests


    npm i


    npm run lint

    npm run test

Credits

Contributing

See the CONTRIBUTING.md file for info