Salesforce.com interface to directly access Salesforce.com

Dependencies:   HTTPClient-SSL MbedJSONValue

Dependents:   df-2014-salesforce-hrm-k64f

Fork of SalesforceInterface by Doug Anson

Revision:
21:e5a4471a46fb
Parent:
20:0d6abaf6d7c5
Child:
22:3363752cd523
--- a/SalesforceInterface.h	Thu Sep 25 05:35:05 2014 +0000
+++ b/SalesforceInterface.h	Fri Sep 26 03:42:20 2014 +0000
@@ -21,22 +21,15 @@
  #ifndef _SALESFORCE_INTERFACE_H_
  #define _SALESFORCE_INTERFACE_H_
  
- // ErrorHandler
- #include "ErrorHandler.h"
+ // Logger
+ #include "Logger.h"
  
  // SSL-based HTTP support
  #include "HTTPClient.h"
  
  // JSON parsing support
  #include "MbedJSONValue.h"
- 
- // verbose debugging
- #if ENABLE_DEBUG_LOGGING
-    #define DEBUG(...)                  { this->logger()->logConsole(__VA_ARGS__); }
- #else
-    #define DEBUG(...)
- #endif 
- 
+  
  // convenience macros
  #define  DEFINE_BUFFER(x)              char x[MAX_BUFFER_LENGTH+1]
  #define  RESET_BUFFER(x)               memset(x,0,MAX_BUFFER_LENGTH+1)
@@ -52,6 +45,13 @@
     #define SALESFORCE_API_VERSION      "28.0"
  #endif
  
+ // verbose debugging within SalesforceInterface
+ #if ENABLE_DEBUG_LOGGING
+    #define DEBUG(...)                  { LOG_CONSOLE(__VA_ARGS__); }
+ #else
+    #define DEBUG(...)                  { ; }
+ #endif 
+ 
  // HTTP Verbs
  typedef enum {
      GET,
@@ -89,7 +89,7 @@
  * @code
  
  #include "Definitions.h"       // definitions including platform specifics...
- #include "ErrorHandler.h"
+ #include "Logger.h"
  
  // include salesforce.com credentials
  #include "sf_creds.h"
@@ -119,7 +119,7 @@
     
  // *************** Test Cases ************************
  
- void Test_getSalesforceToken(ErrorHandler *logger,SalesforceInterface *sf) {
+ void Test_getSalesforceToken(Logger *logger,SalesforceInterface *sf) {
      logger->log("\r\n\r\nGetting Salesforce Token...");
      logger->turnLEDPurple();
      
@@ -132,7 +132,7 @@
      logger->turnLEDGreen();
  }
  
- void Test_query(ErrorHandler *logger,SalesforceInterface *sf,char *query_str) {
+ void Test_query(Logger *logger,SalesforceInterface *sf,char *query_str) {
      logger->log("\r\n\r\nExecuting test query: %s",query_str);
      logger->turnLEDPurple();
      if (query_str != NULL && strlen(query_str) > 0) { 
@@ -147,7 +147,7 @@
      logger->turnLEDGreen();
  }
  
- void Test_create(ErrorHandler *logger,SalesforceInterface *sf) {
+ void Test_create(Logger *logger,SalesforceInterface *sf) {
      logger->log("\r\n\r\nExecuting create()");
      logger->turnLEDPurple();
      
@@ -177,7 +177,7 @@
      logger->turnLEDGreen();
  }
  
- void Test_read(ErrorHandler *logger,SalesforceInterface *sf) {
+ void Test_read(Logger *logger,SalesforceInterface *sf) {
      logger->log("\r\n\r\nExecuting read()");
      logger->turnLEDPurple();
           
@@ -202,7 +202,7 @@
      logger->turnLEDGreen();
  }
  
- void Test_create_external_id(ErrorHandler *logger,SalesforceInterface *sf) {
+ void Test_create_external_id(Logger *logger,SalesforceInterface *sf) {
      logger->log("\r\n\r\nExecuting create(ExternalID)");
      logger->turnLEDPurple();
      
@@ -232,7 +232,7 @@
      logger->turnLEDGreen();
  }
  
- void Test_read_by_external_id_and_value(ErrorHandler *logger,SalesforceInterface *sf) {
+ void Test_read_by_external_id_and_value(Logger *logger,SalesforceInterface *sf) {
      logger->log("\r\n\r\nExecuting read(externalID)...");
      logger->turnLEDPurple();
           
@@ -257,7 +257,7 @@
      logger->turnLEDGreen();
  }
  
- void Test_update(ErrorHandler *logger,SalesforceInterface *sf) {
+ void Test_update(Logger *logger,SalesforceInterface *sf) {
      logger->log("\r\n\r\nExecuting update()");
      logger->turnLEDPurple();
      
@@ -283,7 +283,7 @@
      logger->turnLEDGreen();
  }
  
- void Test_upsert_external_id(ErrorHandler *logger,SalesforceInterface *sf) {
+ void Test_upsert_external_id(Logger *logger,SalesforceInterface *sf) {
      logger->log("\r\n\r\nExecuting upsert(ExternalID)");
      logger->turnLEDPurple();
      
@@ -309,7 +309,7 @@
      logger->turnLEDGreen();
  }
  
- void Test_delete(ErrorHandler *logger,SalesforceInterface *sf) {
+ void Test_delete(Logger *logger,SalesforceInterface *sf) {
      logger->log("\r\n\r\nExecuting delete()");
      logger->turnLEDPurple();
      
@@ -332,7 +332,7 @@
      logger->turnLEDGreen();
  }
  
- void Test_reset_auth(ErrorHandler *logger,SalesforceInterface *sf) {
+ void Test_reset_auth(Logger *logger,SalesforceInterface *sf) {
      logger->log("\r\n\r\nForcing API to reset OAUTH token and Salesforce Token...");
      logger->turnLEDPurple();
      sf->resetSalesforceToken();
@@ -345,7 +345,7 @@
  void mainTask(void const *v) {
         
     // create our object instances 
-    ErrorHandler logger(&pc,NULL);    
+    Logger logger(&pc,NULL);    
     SalesforceInterface *sf = NULL;
     
     // announce
@@ -365,7 +365,7 @@
         
         // allocate the Salesforce.com interface
         logger.log("Allocating Saleforce.com interface...");
-        sf = new SalesforceInterface(&logger,&http);
+        sf = new SalesforceInterface(&http,&logger);
         
         // set our Salesforce.com credentials
         sf->setCredentials(username,password,client_id,client_secret);
@@ -449,7 +449,8 @@
  */       
  class SalesforceInterface {
     private:
-        ErrorHandler    *m_logger;
+        Logger          *m_logger;
+        bool             m_logger_internal;
         HTTPClient      *m_http;
         char            *m_username;
         char            *m_password;
@@ -467,10 +468,17 @@
     public:
         /**
         Default constructor
-        @param logger ErrorHandler instance
         @param http HTTPClient instance
+        @param pc optional RawSerial for debugging output. If NULL, there will be no debugging output 
         */
-        SalesforceInterface(ErrorHandler *logger,HTTPClient *http); 
+        SalesforceInterface(HTTPClient *http,RawSerial *pc = NULL); 
+
+        /**
+        Alternative constructor
+        @param http HTTPClient instance
+        @param logger optional Logger instance (See Logger for more info). If NULL, there will be no debugging output 
+        */
+        SalesforceInterface(HTTPClient *http,Logger *logger = NULL); 
         
         /**
         Default destructor
@@ -613,7 +621,7 @@
         char *getOauthToken(char *output_buffer,int output_buffer_length);
      
         // convenience accessors
-        ErrorHandler *logger();
+        Logger *logger();
         HTTPClient *http();
         OauthToken *oauth();
         HTTPResult httpStatus();
@@ -638,6 +646,9 @@
         
         // min() method
         int min(int value1,int value2);
+        
+        // initialize
+        void init(HTTPClient *http,Logger *logger,bool logger_internal);
  };
  
  #endif // _SALESFORCE_INTERFACE_H_
\ No newline at end of file