Snippets

Monil Gandhi Create Virtual Dealer

Created by Monil Gandhi
<?php
use Braango\braangomodel as model;
use Braango\braangomodel\RequestHeader as rhdr;
require_once (__DIR__ . '/../../vendor/autoload.php');

/**
 *
 * @author braango
 *        
 *         Code to create virtual dealer for partner having valid auth_token
 *        
 *         Auth token of master account is generated by sales team. Allows master
 *         account holder to manage either partner_dealer(s) or real
 *         hierarchical dealers. This example assumes virtual dealer mode where
 *         master account is simply container to hold
 *         "partner_dealer (virtual dealer)" account "partner_dealer" account
 *         acts as empty proxy dealership
 *        
 *         "partner_dealer" will hold dealers which are called "subDealers" and
 *         their personnel
 *        
 */

// TEST auth token. Please contact
// sales@braango.com to have one
// created for you
Braango\Configuration::getDefaultConfiguration()->setApiKey('auth_token', 'ISNWF0P30WM0CMK');

$api_instance = new Braango\braangoapi\AccountsApi();

// Braango\braangomodel\AccountCreateRequestInput |
$partnerDealer = new \Braango\braangomodel\AccountCreateRequestInput(); 


/*
 * { "api_key": "ISNGvAzwuy4X7vAqrtV", "id": "any value",
 * "account_type": "partner" }
 */
$requestHdr = new rhdr();

// Set the account type to partner for
// virtual dealer and partner hosted
// accounts

$requestHdr->setAccountType("partner");

// This id for your tracking, will be reflected back in response.
// Doesn't get used by Braango
// If not speficied, braango will return session-id in its response

$requestHdr->setId("create-partner-dealer-p7");


$partnerDealer->setHeader($requestHdr);


// Actual body of the virtual dealer object
$bdy = new model\AccountInput();


// Business name - Required. Needs to be unique within
// Braango system. Braango will return error code if
// name conflicts
$bdy->setBusinessName("partner p7");


// username is needed for dashboard login and in future
// will be used for basic auth - Required
$bdy->setUserName("partnerp7");


$bdy->setPassword("p7Partner$");


// First name of authorized user - Required
$bdy->setFirstName("partnerp7");


// Last name of authorized user - Required
$bdy->setLastName("partnerp7");


// Required
$bdy->setEmail("partner@partner7.com");


// Required
$bdy->setCellPhone("4087651235");


// Required
// For virtual dealer, always select enterprise
$bdy->setPackage("Franchise");


// Creating virtual dealer - Optional
$bdy->setVirtualDealer(true);


$partnerDealer->setBody($bdy);

try {
    $result = $api_instance->createPartnerDealer($partnerDealer);
   
    if ($result != null) {
        
        // Extract out response hdr and bdy
        $rspHdr = $result->getHeader();
        
        if ($requestHdr = ! null) {
           
            $rspId = $rspHdr->getId();
            
            // Braango request tracker
            $braangoRequestId = $rspHdr->getIsnRequestId();
           
            print_r("Response ID = " . $rspId . ", API Request Id = " . $braangoRequestId . "\n");
        }
        
        $rspBdy = $result->getBody();
       
        if ($rspBdy != null) {
           
            $status = $rspBdy->getStatus();
            
            // Typically this value should be always SUCCESS else exception will be thrown
            // Sometimes, this can be WARNING to indicate if any resource conflicted or not
            // In case of SUCCESS or WARNING, resources are always created (excepting warned sub-resources)
            print_r("Status = " . $status . "/n");
            
            // Actuall response data
            $data = $rspBdy->getData();
            
            // This is internal dealerId within braango system
            // assigned to virtualDealer (partnerDealer)
            $partnerDealerId = $data->getDealerId();
            
            // This is critical key that needs to be
            // supplied as apiKey in all subsequent
            // requests to other APIs. This authorizes
            // partnerDealer within braango system
            //
            // Note this is different from auth_token
            // that authenticates partnerDealer and
            // needs to be set in ApiClient via setApiKey
            // (braangoApiClient)
            //
            $partnerDealerApiKey = $data->getDealerApiKey();
            
            print_r("Partner Dealer ID = " . $partnerDealerId . "\n");
            
            print_r("Partner Dealer API Key = " . $partnerDealerApiKey . "\n");
        }
    }
} catch (Exception $e) {
    
    echo 'Exception when calling AccountsApi->createPartnerDealer: ', $e->getMessage(), PHP_EOL;
}
?>

Comments (0)

HTTPS SSH

You can clone a snippet to your computer for local editing. Learn more.