Salesforce.com interface to directly access Salesforce.com
Dependencies: HTTPClient-SSL MbedJSONValue
Dependents: df-2014-salesforce-hrm-k64f
Fork of SalesforceInterface by
Diff: SalesforceInterface.h
- 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