Skip to content

Instantly share code, notes, and snippets.

View quintonwall's full-sized avatar

Quinton Wall quintonwall

View GitHub Profile
@quintonwall
quintonwall / airbyte_oauth_flow.py
Created July 15, 2025 19:04
demo of Airbyte oauth flow via API
import requests
import json
import os
from typing import Dict, Any, Optional
class AirbyteOAuthFlow:
"""
A class to handle the Airbyte OAuth flow sequence:
1. Create access token
2. Create/update organization OAuth credentials
@quintonwall
quintonwall / google-meet-airbyte.yaml
Created June 4, 2025 15:57
Google Meet Airbyte Connector
version: 6.48.15
type: DeclarativeSource
description: Solves https://github.com/airbytehq/airbyte/issues/45995
check:
type: CheckStream
stream_names:
- transcripts
@quintonwall
quintonwall / tmlify.py
Created January 13, 2022 23:58
Take the output of a ThoughtSpot tml/export API call and extract the edoc values, formatting them for use in a tml/import import_objects key array
# python script to take the output of a tml/export api call and
# extract the edoc value required for the tml/import import_objects key
#
#
# argv[1] tml filename
# argv[2] output filename
#
import json
import sys
{
"info": {
"_postman_id": "edc9b1b6-7b9c-4736-a05e-eb49c481e4f1",
"name": "ThoughtSpot",
"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
},
"item": [
{
"name": "Login",
"request": {
@quintonwall
quintonwall / twiliosurvey.swift
Created March 16, 2019 16:36
Call Twilio Survey From Swift
func sendSMSSurvey(opportunityId: String, surveyType: String, completion: @escaping DashDataCompletion) {
let data = [
"To" : "4159999999",
"From" : "+18319999999", //twilio account number
"Parameters" : "{\"opportunityId\":\"\(opportunityId)\",\"surveyType\":\"\(surveyType)\"}"
]
let urlString = "https://studio.twilio.com/v1/Flows/FW98f493a6cd8c930ede81fd31f16f62e3/Executions"
@quintonwall
quintonwall / UIDevice.swift
Created September 28, 2017 15:12
UIDevice extension to make working with device basics easier
//
//
//
// Created by QUINTON WALL on 7/31/16.
// Copyright © 2016 Quinton Wall. All rights reserved.
//
import UIKit
public extension UIDevice {
@quintonwall
quintonwall / PushPriceChangeNotification.apex
Created April 11, 2017 07:16
Update to the Dreamhouse app PushPriceChangeNotification Invocable Method to use the native Salesforce Universal Notification framework and iOS10 Rich Media Messaging
public with sharing class PushPriceChangeNotification {
@InvocableMethod(label='Push Price Change Notification')
public static void pushNotification(List<Id> propertyId) {
Id propId = propertyId[0]; // If bulk, only post first to avoid spamming
System.debug('Price updated on property id '+propId);
Property__c property = [SELECT Name, Picture__c, Price__c from Property__c WHERE Id=:propId];
String message = property.Name + '. New Price: $' + property.Price__c.setScale(0).format();
Set<String> userIds = new Set<String>();
@quintonwall
quintonwall / TaskRowController.swift
Created March 23, 2015 18:51
TaskRowController class for Salesforce Wear Apple Watch Webinar
//
// TaskRowController.swift
// SalesforceWatch
//
// Created by Quinton Wall on 3/23/15.
// Copyright (c) 2015 Salesforce, Inc. All rights reserved.
//
import Foundation
import WatchKit
@quintonwall
quintonwall / TaskListController.swift
Created March 23, 2015 18:50
TaskListController completed class for Salesforce Wear Apple Watch webinar
//
// TaskListController.swift
// SalesforceWatch
//
// Created by Quinton Wall on 3/23/15.
// Copyright (c) 2015 Salesforce, Inc. All rights reserved.
//
import Foundation
import WatchKit
@quintonwall
quintonwall / TasksHandler.swift
Created March 23, 2015 18:48
Complete TasksHandler file for Salesforce Wear with Apple Watch Webinar
//
// TaskHandler.swift
// SalesforceWatch
//
// Created by Quinton Wall on 3/23/15.
// Copyright (c) 2015 Salesforce, Inc. All rights reserved.
//
import Foundation