Skip to content

Instantly share code, notes, and snippets.

Avatar

Marty Chang martyychang

View GitHub Profile
@martyychang
martyychang / beautifyDealhub.js
Created Aug 24, 2021
Make the DealHub.io interface more developer-friendly for editing conditional answers and other attributes.
View beautifyDealhub.js
var sheets = document.styleSheets;
var neatSheet = null;
/* Find the default style to edit */
for (i = 0; i < sheets.length; i++) {
if (sheets[i].title === null) {
neatSheet = sheets[i];
}
}
@martyychang
martyychang / combine_csv.py
Created Aug 23, 2020
Combine multiple CSV files into a single CSV file
View combine_csv.py
# https://blog.softhints.com/how-to-merge-multiple-csv-files-with-python/
# https://www.techbeamers.com/pandas-merge-csv-files/
import os, glob
import pandas as pdlib
path = "/Users/mchang/Desktop/Salesforce/Account/1598097614646/"
list_of_files = glob.glob(os.path.join(path, "data_*.csv"))
# Consolidate all CSV files into one object
result_obj = pdlib.concat([pdlib.read_csv(file) for file in list_of_files])
@martyychang
martyychang / listsobjectfields.py
Created Jan 31, 2020
List all field labels and field names for an object
View listsobjectfields.py
import csv
import os
import xml.etree.ElementTree as ET
FIELDS_SUBDIR = 'fields'
METADATA_NAMESPACE = 'http://soap.sforce.com/2006/04/metadata'
OBJECTS_DIR = 'force-app/main/default/objects'
namespaces = {
'': METADATA_NAMESPACE
@martyychang
martyychang / batch-create-records.js
Created Jan 24, 2020
Expected input objects for Salesforce "batch create records" and "batch update records" actions in Tray.io
View batch-create-records.js
// You can reference the input variables using input.NAME
exports.step = function(input) {
return _.map(input.rows, function(row) {
// Please note that the format of this object is different
// from the format for the "Batch update records" operation.
return [
{
"key": "Role__c",
"value": row.role
@martyychang
martyychang / SobjectQueryGenerator.cls
Last active Oct 5, 2020
Generate Salesforce SELECT * query, Postgres CREATE TABLE statement and database-conf.xml content for a given object.
View SobjectQueryGenerator.cls
public class SobjectQueryGenerator {
private List<Schema.DescribeFieldResult> fieldDescList;
private Schema.DescribeSObjectResult sobjectDesc;
public SobjectQueryGenerator(Schema.DescribeSObjectResult sobjectDesc, Boolean includeCalculated) {
this.sobjectDesc = sobjectDesc;
this.fieldDescList = new List<Schema.DescribeFieldResult>();
for (Schema.SObjectField eachField : this.sobjectDesc.fields.getMap().values()) {
Schema.DescribeFieldResult eachDfr = eachField.getDescribe();
@martyychang
martyychang / .bash_profile
Created Oct 29, 2018
Better Git integration with Terminal on Mac OS X
View .bash_profile
# Git shell
# https://gist.github.com/trey/2722934
source /Applications/Xcode.app/Contents/Developer/usr/share/git-core/git-completion.bash
source /Applications/Xcode.app/Contents/Developer/usr/share/git-core/git-prompt.sh
GIT_PS1_SHOWDIRTYSTATE=true
GIT_PS1_SHOWCOLORHINTS=true
export PS1='\[\033[0;36m\]\u@\h\[\033[0;35m\]:\[\033[0;33m\]\w\[\033[0;37m\]$(__git_ps1)\[\033[0m\]\n\$ '
@martyychang
martyychang / listObjectFields.java
Last active Oct 8, 2018
Generate a list of all fields and data types for a given object and send the metadata in CSV format via email
View listObjectFields.java
// README: This is the only line you need to edit (generally speaking)
// This is the object for which I want to extract the field describes.
// Running this script will send the resulting field list to your user's email,
// with the fields as an attached CSV file.
Schema.DescribeSObjectResult objectDescribe = Schema.SObjectType.OpportunityLineItem;
/**
* Wrapper class to return CSV rows
*/
public class FieldCsvWriter {
@martyychang
martyychang / check.sh
Last active Dec 28, 2018
Trailblazer .bin
View check.sh
# Check to require a username to be [given as argument][1]
#
# [1]: https://stackoverflow.com/questions/6482377/check-existence-of-input-argument-in-a-bash-shell-script
if [ -z "$1" ]; then
echo ERROR: Username argument required!
# [terminate and indicate error][3]
#
# [3]: https://stackoverflow.com/questions/4381618/exit-a-script-on-error
exit 1
@martyychang
martyychang / .gitignore
Created Jul 17, 2017
MavensMate project init
View .gitignore
# MavensMate
config/
# Sublime Text
*.sublime*
@martyychang
martyychang / CommunityTopicListItemController.cls
Created Apr 18, 2017
Server-side controller for Lightning component enabling partner users to follow and unfollow topics
View CommunityTopicListItemController.cls
public class CommunityTopicListItemController {
@AuraEnabled
public static void subscribe(Id entityId) {
ConnectApi.Subscription subscription =
ConnectApi.ChatterUsers.follow(Network.getNetworkId(), 'me', entityId);
}
@AuraEnabled
public static void unsubscribe(Id subscriptionId) {