This is a very simple rest API developed to lookup and return a single preference record – the temperature preference. This is intended as a proof of concept and is exposed via Sites as an anonymous rest API and has been deployed and tested in a development org. There would be a lot of work to complete to make this production ready but it demonstrates the key functionality of setting the temperature via a guest preference stored in Salesforce.


global class tempController {

global static void /*string*/ getGuestPreference() {
//First set a default temp
string guestPreferenceTemp = ’76’;
integer firsttemp;

//Looks up the first guest preference
//Would need to find the specific guest in production
List<guestPreferences__c> tempPref= [SELECT temp__c from guestPreferences__c];

firsttemp = integer.valueof(tempPref[0].temp__c);

if(firsttemp == null){
system.debug(‘no temp found for user’);
JSONGenerator generator = JSON.createGenerator(true);   //instantiation of the generator
generator.writeStartObject();               // Writes the starting marker of a JSON object ‘{‘
generator.writeStringField(‘preftemp’, string.valueof(firsttemp));
generator.writeEndObject();                 //Writes the ending marker of a JSON object ‘}’
guestPreferenceTemp = generator.getAsString();
//return guestPreferenceTemp;
RestContext.response.addHeader(‘Content-Type’, ‘application/json’);
RestContext.response.responseBody = Blob.valueOf(guestPreferenceTemp);