Add COntent
Create Virtual Dealer
/**
*
*/
package com.braango.virtualdealer;
import java.util.UUID;
import com.braango.client.ApiClient;
import com.braango.client.ApiException;
import com.braango.client.braangoapi.AccountsApi;
import com.braango.client.braangomodel.AccountCreateOutputWrapper;
import com.braango.client.braangomodel.AccountCreateOutputWrapperBody;
import com.braango.client.braangomodel.AccountCreateOutputWrapperBodyData;
import com.braango.client.braangomodel.AccountCreateRequestInput;
import com.braango.client.braangomodel.AccountInput;
import com.braango.client.braangomodel.RequestHeader;
import com.braango.client.braangomodel.ResponseHeader;
/**
* @author purvesh
*
* 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
*
*/
public class CreateVirtualDealer {
static String basePath = "https://testapi2.braango.com/v2/braango";
/**
*
*/
public CreateVirtualDealer() {
// TODO Auto-generated constructor stub
}
/**
* @param args
*/
public static void main(String[] args) {
ApiClient braangoApiClient = new ApiClient();
String authToken = "ISNWF0P30WM0CMK"; // TEST auth token. Please contact sales@braango.com to have one created for you
// Create object to create partnerDealer
AccountCreateRequestInput partnerDealer = new AccountCreateRequestInput();
RequestHeader hdr = new RequestHeader();
hdr.apiKey(authToken); // This api key is actually authorization key to enable various features
hdr.setAccountType("partner"); // For channel partner, integrator, this value is partner, else dealer for business directly
// using this api
hdr.setId("create-partner-dealer-p5"); // 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
partnerDealer.setHeader(hdr);
AccountInput bdy = new AccountInput(); // Actual body of the virtual dealer object
bdy.setBusinessName("partner p5"); // Business name - Required. Needs to be unique within
// Braango system. Braango will return error code if
// name conflicts
bdy.setUserName("partnerp5"); // username is needed for dashboard login and in future
// will be used for basic auth - Required
bdy.setPassword("p5Partner$");
bdy.setFirstName("partner"); // First name of authorized user - Required
bdy.setLastName("partner"); // Last name of authorized user - Required
bdy.setEmail("partner@partner.com"); // Required
bdy.setCellPhone("4088907723"); // Required
bdy.setPackage("Franchise"); // For virtual dealer, always select enterprise
bdy.setVirtualDealer(true); // Creating virtual dealer - Optional
partnerDealer.setBody(bdy);
braangoApiClient.setBasePath(basePath);
braangoApiClient.setApiKey(authToken); // Lower level api_key . This is the auth_token created by sales_team
// This is actually authentication token
AccountsApi partnerDealerApi
= new AccountsApi(braangoApiClient); // Actual api that has calls to create virtual dealer
try {
AccountCreateOutputWrapper virtualDealer = partnerDealerApi.createPartnerDealer(partnerDealer);
if(virtualDealer != null) {
// Extract out the hdr and body
ResponseHeader respHdr = virtualDealer.getHeader();
if(respHdr != null) {
String respId = respHdr.getId();
UUID braangoRequestId
= respHdr.getIsnRequestId(); // Braango request tracker
System.out.println("Response ID = " + respId + " request tracker id = " + braangoRequestId.toString());
}
AccountCreateOutputWrapperBody respBdy = virtualDealer.getBody();
if(respBdy != null) {
String status = respBdy.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)
System.out.println("Status = " + status);
// Actuall response data
AccountCreateOutputWrapperBodyData data = respBdy.getData();
String partnerDealerId = data.getDealerId(); // This is internal dealerId within braango system
// assigned to virtualDealer (partnerDealer)
String partnerDealerApiKey = data.getDealerApiKey(); // 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)
//
Integer dealerPkId = data.getDealerPkId(); // Internal ID used in Braango system
System.out.println("Partner Dealer Api Key = " + partnerDealerApiKey + "Partner Dealer Id = " + partnerDealerId );
}
}
} catch (ApiException e) {
e.printStackTrace();
System.out.println("HTTP ERROR CODE = " + e.getCode() + "DETAILED MESSAGE = " + e.getResponseBody()) ;
}
}
}