Skip to content

Instantly share code, notes, and snippets.

@Woody88
Last active July 31, 2018 06:26
Show Gist options
  • Select an option

  • Save Woody88/105a9eca5c3acc15969f70bf7fd1bc0a to your computer and use it in GitHub Desktop.

Select an option

Save Woody88/105a9eca5c3acc15969f70bf7fd1bc0a to your computer and use it in GitHub Desktop.
Example using purescript-sforce
// Generated by purs version 0.12.0
"use strict";
var Control_Bind = require("../Control.Bind/index.js");
var Data_Either = require("../Data.Either/index.js");
var Data_Function = require("../Data.Function/index.js");
var Effect = require("../Effect/index.js");
var Effect_Aff = require("../Effect.Aff/index.js");
var Effect_Class = require("../Effect.Class/index.js");
var Effect_Console = require("../Effect.Console/index.js");
var Prelude = require("../Prelude/index.js");
var Salesforce_Client = require("../Salesforce.Client/index.js");
var Salesforce_Types = require("../Salesforce.Types/index.js");
var queryAccounts = function (conn) {
return Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Salesforce_Client.getAccounts(conn));
};
var main = (function () {
var loginOpts = {
loginUrl: "https://test.salesforce.com",
clientId: "-------",
redirectUri: "http://localhost:8080/",
proxyUrl: "http://localhost:3123/proxy/"
};
var handleLoginSuccess = function (conn) {
return function __do() {
Effect_Console.log("connected")();
return Effect_Aff.launchAff_(Salesforce_Types.runSalesforce(queryAccounts)(conn))();
};
};
var handleLoginError = function (result) {
if (result instanceof Salesforce_Client.Cancelled) {
return Effect_Console.log("cancelled");
};
if (result instanceof Salesforce_Client["Error"]) {
return Effect_Console.log(result.value0);
};
throw new Error("Failed pattern match at Main line 27, column 31 - line 29, column 27: " + [ result.constructor.name ]);
};
return function __do() {
var v = Salesforce_Client.mkClient()(loginOpts)();
return Effect_Aff.launchAff_(Control_Bind.bind(Effect_Aff.bindAff)(Salesforce_Client.login()({})(v))(function (v1) {
return Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Data_Either.either(handleLoginError)(handleLoginSuccess)(v1));
}))();
};
})();
module.exports = {
main: main,
queryAccounts: queryAccounts
};
module Main where
import Prelude
import Data.Either (either)
import Effect (Effect)
import Effect.Class
import Effect.Console (log)
import Effect.Aff
import Salesforce.Client
import Salesforce.Types
main :: Effect Unit
main = do
client <- mkClient loginOpts
launchAff_ do
eitherLogin <- login {} client
liftEffect $ either handleLoginError handleLoginSuccess eitherLogin
where
loginOpts =
{
loginUrl: "https://test.salesforce.com",
clientId: "...",
redirectUri: "http://localhost:8080/",
proxyUrl: "http://localhost:3123/proxy/"
}
handleLoginError result = case result of
Cancelled -> log "cancelled"
Error msg -> log msg
handleLoginSuccess conn = do
log "connected"
launchAff_ $ runSalesforce queryAccounts conn
queryAccounts :: SalesforceM (Array Accounts)
queryAccounts = SalesforceM \conn -> do
liftEffect $ getAccounts conn
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment