Skip to content

Commit

Permalink
Condensed setup script
Browse files Browse the repository at this point in the history
The new setup script will create an example.env file for you to be able
to use for your app
  • Loading branch information
Brody Berson committed Oct 13, 2015
1 parent c44e5d8 commit 3b59190
Show file tree
Hide file tree
Showing 2 changed files with 52 additions and 59 deletions.
13 changes: 6 additions & 7 deletions example.env
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
DASH_MAC_ADDRESS=XX:02:dc:85:b8:3c
DASH_MAC_ADDRESS=XX:yy:zz:11:22:33
URL=https://sandbox.drizly.com/api/v3
PARTNER_TOKEN=abcdefghijklmnopqrstuvwxyz
TOKEN=usertokenfromhelper
TOKEN=XXXXXX
USER_ID=123
ADDRESS_ID=456
LAT=40.0155388
LONG=-105.2839245
STORE_ID=1
PAYMENT_CLIENT_TOKEN=braintree_payment_client_token
CREDIT_CARD_ID=890
CREDIT_CARD_ID=789
LATITUDE=40.0155
LONGITUDE=-105.284
STORE_ID=1
98 changes: 46 additions & 52 deletions setup.js
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
require('dotenv').load();
var prompt = require('prompt');
var request = require('request');
var baseURL = 'https://sandbox.drizly.com/api/v3';
var partnerToken, userToken, userid, addressid, creditcardid, lon, lat, storeid;
var baseURL, partnerToken, userToken, userid, addressid, creditcardid, lon, lat, storeid;

prompt.message = 'DrizlyDash Setup Script\nIf you haven\'t already created a Drizly account, please go to https://drizly.com/session/register\nand signup and fill in your default address and credit card.\n'.red;
console.log('DrizlyDash Setup Script\nIf you haven\'t already created a Drizly account, please go to https://drizly.com/session/register\nand signup and fill in your default address and credit card.\n');
prompt.message = 'DrizlyDash'.red;
prompt.delimiter = ">".cyan;

prompt.start();
Expand All @@ -14,6 +13,10 @@ prompt.get([{
name: 'partner',
description: 'Enter your Drizly API Partner Token',
required: true
}, {
name: 'url',
description: 'Enter the Drizly API URL',
required: true
}, {
name: 'email',
description: 'Enter your Drizly email',
Expand All @@ -25,11 +28,16 @@ prompt.get([{
conform: function (value) {
return true;
}
},{
name:'query',
description: 'Enter your alcohol query'
}], function (err, result) {
console.log('Command-line input received:');
console.log(' email: ' + result.url);
console.log(' email: ' + result.email);
console.log(' password: ********');

baseURL = result.url;
partnerToken = result.partner;

var endpoint = baseURL + '/user/authenticate';
Expand All @@ -41,65 +49,51 @@ prompt.get([{
};
request.post({url: endpoint, formData: formData}, function optionalCallback(err, httpResponse, body) {
if (err) {
return console.error('Login failed:', err);
return console.error('\nLogin failed:', err);
}
console.log('Login successful! Server responded with: \n', JSON.parse(body));
userToken = JSON.parse(body).token.token;
userid = JSON.parse(body).token.user_id;
addressid = JSON.parse(body).user.default_delivery_address.address_id;
creditcardid = JSON.parse(body).user.default_saved_credit_card.saved_credit_card_id;
});
});
var jsonBody = JSON.parse(body);
console.log('\nLogin successful! Server responded with: \n', jsonBody);
userToken = jsonBody.token.token;
userid = jsonBody.token.user_id;
addressid = jsonBody.user.default_delivery_address.address_id;
creditcardid = jsonBody.user.default_saved_credit_card.saved_credit_card_id;

// Find Closest Store
lat = jsonBody.user.default_delivery_address.latitude;
lon = jsonBody.user.default_delivery_address.longitude;
endpoint = baseURL + '/store/resolve?partner_token=' + partnerToken + '&token=' + userToken + '&latitude=' + lat + '&longitude=' + lon;
request(endpoint, function (err, response, body) {
if (err) {
return console.error('\nStore Lookup failed:', err);
}
var jsonBody = JSON.parse(body);
console.log('\nStore lookup successful! Server responded with: \n', jsonBody.stores[0]);
storeid = jsonBody.stores[0].id;
// Query Store
console.log('\n query: ' + result.query);
endpoint = baseURL + '/catalog/filter?partner_token=' + partnerToken + '&token=' + userToken + '&per_page=100&store_id=' + storeid + '&q=' + result.query;

// Get Lat/Long
prompt.get([{
name:'address',
description: 'Enter your address'
}], function (err, result) {
console.log('Command-line input received:');
console.log(' address: ' + result.address);
var geocoderProvider = 'openstreetmap';
var httpAdapter = 'https';
var extra = {
language: 'English',
email: 'brody.berson@gmail.com',
formatter: null
};
var geocoder = require('node-geocoder')(geocoderProvider, httpAdapter, extra);

geocoder.geocode(result.address, function(err, res) {
console.log(res);
lat = res[0].latitude;
lon = res[0].longitude;
var endpoint = baseURL + '/store/resolve?partner_token=' + partnerToken + '&token=' + userToken + '&latitude=' + lat + '&longitude=' + lon;
request(endpoint, function (err, response, body) {
if (err) {
return console.error('Store Lookup failed:', err);
return console.error('\nQuery failed:', err);
}
console.log('Store lookup successful! Server responded with: \n', JSON.parse(body).stores[0]);
storeid = JSON.parse(body).stores[0].id;
console.log('\nQuery successful! Server responded with: \n', JSON.parse(body).catalog_items);
});
});
});

// Query Store
prompt.get([{
name:'query',
description: 'Enter your alcohol query'
}], function (err, result) {
console.log('Command-line input received:');
console.log(' query: ' + result.query);
var fs = require('fs');
var data = 'DASH_MAC_ADDRESS=XX:yy:zz:11:22:33\nURL='+baseURL+'\nPARTNER_TOKEN='+partnerToken+'\nTOKEN='+userToken+'\nUSER_ID='+userid+'\nADDRESS_ID='+addressid+'\nCREDIT_CARD_ID='+creditcardid+'\nLATITUDE='+lat+'\nLONGITUDE='+lon+'\nSTORE_ID='+storeid;
fs.writeFile('example.env', data, function(err) {
if(err) {
return console.log(err);
}

var endpoint = baseURL + '/catalog/filter?partner_token=' + partnerToken + '&token=' + userToken + '&per_page=100&store_id=' + storeid + '&q=' + result.query;

request(endpoint, function (err, response, body) {
if (err) {
return console.error('Query failed:', err);
}
console.log('Query successful! Server responded with: \n', JSON.parse(body).catalog_items);
console.log("The file was saved!");
});
});
});
});


function onErr(err) {
console.log(err);
return 1;
Expand Down

0 comments on commit 3b59190

Please sign in to comment.