hok00age / rajaongkir-php

PHP client untuk mengkonsumsi API RajaOngkir
14 stars 19 forks source link

Updating script support Unirest 2.x #7

Open mrsnax opened 8 years ago

mrsnax commented 8 years ago

Dimodifikasikan untuk mensupport Unirest 2.x

<?php

/**
 * RajaOngkir PHP Client
 * 
 * Class PHP untuk mengkonsumsi API RajaOngkir
 * Berdasarkan dokumentasi RajaOngkir http://rajaongkir.com/dokumentasi
 * 
 * @author Damar Riyadi <damar@tahutek.net>
 * Modification by Sterli MRSNAX <saya@sterli.net>
*/

namespace hok00age;

class RajaOngkir {

    private static $api_key;
    private static $base_url = "http://rajaongkir.com/api/";

    /**
     * Constructor
     * @param string $api_key API Key Anda sebagaimana yang tercantum di akun panel RajaOngkir
     * @param array $additional_headers Header tambahan seperti android-key, ios-key, dll
     */
    public function __construct($api_key, $additional_headers = array()) {
        RajaOngkir::$api_key = $api_key;
        \Unirest\Request::defaultHeader("key", RajaOngkir::$api_key);
        foreach ($additional_headers as $key => $value) {
            \Unirest\Request::defaultHeader($key, $value);
        }
    }

    /**
     * Fungsi untuk mendapatkan data propinsi di Indonesia
     * @param integer $province_id ID propinsi, jika NULL tampilkan semua propinsi
     * @return object Object yang berisi informasi response, terdiri dari: code, headers, body, raw_body.
     */
    static function getProvince($province_id = NULL) {
        $params = (is_null($province_id)) ? NULL : array('id' => $province_id);
        return \Unirest\Request::get(RajaOngkir::$base_url . "province", array(), $params);
    }

    /**
     * Fungsi untuk mendapatkan data kota di Indonesia
     * @param integer $province_id ID propinsi
     * @param integer $city_id ID kota, jika ID propinsi dan kota NULL maka tampilkan semua kota
     * @return object Object yang berisi informasi response, terdiri dari: code, headers, body, raw_body.
     */
    static function getCity($province_id = NULL, $city_id = NULL) {
        $params = (is_null($province_id)) ? NULL : array('province' => $province_id);
        if (!is_null($city_id)) {
            $params['id'] = $city_id;
        }
        return \Unirest\Request::get(RajaOngkir::$base_url . "city", array(), $params);
    }

    /**
     * Fungsi untuk mendapatkan data ongkos kirim
     * @param integer $origin ID kota asal
     * @param integer $destination ID kota tujuan
     * @param integer $weight Berat kiriman dalam gram
     * @param string $courier Kode kurir, jika NULL maka tampilkan semua kurir
     * @return object Object yang berisi informasi response, terdiri dari: code, headers, body, raw_body.
     */
    static function getCost($origin, $destination, $weight, $courier = NULL) {
        $params = array(
            'origin' => $origin,
            'destination' => $destination,
            'weight' => $weight
        );
        if (!is_null($courier)) {
            $params['courier'] = $courier;
        }
        return \Unirest\Request::post(RajaOngkir::$base_url . "cost", array(), http_build_query($params));
    }

}
?>
mrsnax commented 8 years ago

Usage

RajaOngkir::RajaOngkir("**<YOUR_API_KEYS**");

RajaOngkir::getCity($propinsi, $kota);