/** * */ 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 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 * */ 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()) ; } } }