Snippets

Purvesh Khona Create virtual dealer

Created by Purvesh Khona
/**
 * 
 */
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()) ;
			
		}
		
	
		
	}

}

Comments (0)

HTTPS SSH

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