Skip to content

Instantly share code, notes, and snippets.

View metadaddy's full-sized avatar

Pat Patterson metadaddy

View GitHub Profile
@metadaddy
metadaddy / CaseUpload.page
Created April 10, 2014 20:31
S1 Visualforce page to create a case with location
<apex:page controller="CreateCaseCon" docType="html-5.0" showHeader="false">
<style>
html, body {
height: 100%;
}
h3 {
display: block;
margin-top: 30px;
margin-bottom: 10px;
@metadaddy
metadaddy / PatTest.cls
Created June 4, 2014 21:08
Extract all field names from an SObject to use in a query
public class PatTest {
public static void queryAllFields(String objTypeName) {
Schema.DescribeSObjectResult[] descResult =
Schema.describeSObjects(new String[]{objTypeName});
Map<String, Schema.SObjectField> fsMap = descResult[0].fields.getMap();
List<String> fieldNames = new List<String>(fsMap.keySet());
String queryString = 'SELECT '+String.join(fieldNames, ',')+' FROM Account LIMIT 1';
SObject obj = Database.query(queryString);
// Registration handler to create internal users from a Google social sign-on
global class GoogleRegHandler implements Auth.RegistrationHandler{
global boolean canCreateUser(Auth.UserData data) {
// TODO: Check whether you want to allow creation of a user with this data
// e.g. test the domain name on the email address, or check some list
// somewhere, and return true as appropriate
return false;
}
@metadaddy
metadaddy / app.js
Created February 24, 2015 20:49
Read Twitter handles and hashtags from Salesforce (via Heroku Connect), then subscribe to matching tweets and insert them in a Postgres table
var Twitter = require('twitter');
var pg = require('pg');
var tw = new Twitter({
consumer_key: process.env.TWITTER_CONSUMER_KEY,
consumer_secret: process.env.TWITTER_CONSUMER_SECRET,
access_token_key: process.env.TWITTER_ACCESS_TOKEN_KEY,
access_token_secret: process.env.TWITTER_ACCESS_TOKEN_SECRET,
});
@metadaddy
metadaddy / Agent
Created May 4, 2015 23:17
Press a button on the Electric Imp to upsert a record in Salesforce
#require "Salesforce.class.nut:1.0.0"
force <- Salesforce("CLIENT_ID_GOES_HERE",
"CLIENT_SECRET_GOES_HERE");
USERNAME <- "user@example.com";
PASSWORD <- "p455w0rd";
SECURITY_TOKEN <- "s3cr3t";
force.login(USERNAME, PASSWORD, SECURITY_TOKEN, function(err, data) {
@metadaddy
metadaddy / Agent
Last active August 29, 2015 14:23
Run OAuth from the Agent, log 9DOF data from device, including click events
#require "Salesforce.class.nut:1.0.0"
CLIENT_ID <- "CLIENT_ID_GOES_HERE";
CLIENT_SECRET <- "CLIENT_SECRET_GOES_HERE";
LOGIN_HOST <- "login.salesforce.com";
// Uncomment to clear saved OAuth state
//server.save({});
OAUTH <- server.load();
@metadaddy
metadaddy / sessionTimeout.js
Created July 3, 2015 00:07
Retrieve session timeout from Salesforce via Metadata API in Node.js
var jsforce = require('jsforce');
var unzip = require('unzip');
var xml2js = require('xml2js');
var sessionTimeoutSeconds = {
FifteenMinutes : 900,
ThirtyMinutes : 1800,
SixtyMinutes : 3600,
TwoHours : 7200,
FourHours : 14400,
@metadaddy
metadaddy / tn.page
Created August 31, 2015 21:51
Get job/batch status correctly with BulkTK
<apex:page docType="html-5.0" title="Bulk Uploader" sidebar="false">
<div id="byte_content"></div>
<input type="file" id="files" onchange="upload()"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
<script src="{!$Resource.forcetk}"></script>
<script src="{!$Resource.jxon}"></script>
<script src="{!$Resource.bulkTK}"></script>
<script src="{!$Resource.vkbeautify}"></script>
<script>
function readBlob(opt_startByte, opt_stopByte) {
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
@metadaddy
metadaddy / Bulker.cls
Created May 3, 2016 17:08
Create half a million test records in Salesforce
public class Bulker {
public static void insertHalfMillion() {
for (Integer i = 0; i < 50; i++) {
insertTenThousand(i * 10000);
}
}
@future
public static void insertTenThousand(Integer start) {
List<Record__c> l = new List<Record__c>();