Skip to content

Commit

Permalink
Factorize downloader & eslint fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
martinez-hugo committed Feb 9, 2023
1 parent b293898 commit 001d0a4
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 53 deletions.
6 changes: 3 additions & 3 deletions .env.dist
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
API_URL="<API URL>"
METABASE_MAIL="<Metabase API Mail>"
METABASE_PWD="<Metabase API Password>"
METABASE_URL="<Metabase API URL>"
OVH_APP_KEY="<OVH App Key>"
OVH_APP_SECRET_KEY="<OVH App Secret Key>"
OVH_CONSUMER_KEY="<OVH Consumer Key>"
Expand All @@ -7,6 +10,3 @@ SLACK_WEBHOOK="<Slack Webhook>"
TWILIO_ACCOUND_SID="<Twilio Account SID>"
TWILIO_AUTH_TOKEN="<Twilio Auth Token>"
TWILIO_PHONE_VOICE="<Twilio Phone Voice>"
METABASE_URL="<Metabase API URL>"
METABASE_MAIL="<Metabase API Mail>"
METABASE_PWD="<Metabase API Password>"
62 changes: 14 additions & 48 deletions downloader.js
Original file line number Diff line number Diff line change
@@ -1,48 +1,14 @@
const axios = require('axios')
const fs = require('fs')

const reviewsDownloader = async () => {
const response = await axios({
method: 'post',
url: `https://${process.env.METABASE_URL}/api/session`,
data: { username: `${process.env.METABASE_MAIL}`, password: `${process.env.METABASE_PWD}` }
})
console.log(response.data.id)

const datasetReviews = await axios.post(
`https://${process.env.METABASE_URL}/api/dataset/json`,
new URLSearchParams({
query: '{"database":2,"query":{"source-table":6},"type":"query","middleware":{"js-int-to-string?":true,"add-default-userland-constraints?":true}}',
visualization_settings: '{"column_settings":{},"table.pivot":false,"table.pivot_column":"completed_at","table.cell_column":"do_it_for_me","table.columns":[{"name":"id","fieldRef":["field",48,null],"enabled":true},{"name":"google_place_id","fieldRef":["field",52,null],"enabled":true},{"name":"created_at","fieldRef":["field",49,{"temporal-unit":"default"}],"enabled":true},{"name":"completed_at","fieldRef":["field",51,{"temporal-unit":"default"}],"enabled":true},{"name":"type","fieldRef":["field",47,null],"enabled":true},{"name":"do_it_for_me","fieldRef":["field",50,null],"enabled":true}],"table.column_formatting":[]}'
}),
{
headers: {
authority: `${process.env.METABASE_URL}`,
accept: '*/*',
'accept-language': 'fr-FR,fr;q=0.9,en-US;q=0.8,en;q=0.7',
'content-type': 'application/x-www-form-urlencoded;charset=UTF-8',
cookie: `metabase.DEVICE=50796a71-d0ec-49c3-9dcd-d453b57c5f53; _ga=GA1.2.938353226.1673289574; metabase.TIMEOUT=alive; metabase.SESSION=${response.data.id}; _gid=GA1.2.1794784591.1675763957; _gat=1`,
origin: `https://${process.env.METABASE_URL}`,
referer: `https://${process.env.METABASE_URL}/question`,
'sec-ch-ua': '"Not_A Brand";v="99", "Google Chrome";v="109", "Chromium";v="109"',
'sec-ch-ua-mobile': '?0',
'sec-ch-ua-platform': '"macOS"',
'sec-fetch-dest': 'empty',
'sec-fetch-mode': 'cors',
'sec-fetch-site': 'same-origin',
'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36'
}
}
)

const json = JSON.stringify(datasetReviews.data)

fs.writeFile('reviews.json', json, 'utf8', function (res, err) {
console.log(res, err)
})
}

const placesDownloader = async () => {
require('dotenv').config()

/**
*
* @param {object} queryRequested
* @param {object} visualiszationRequested
* @param {string} fileName
*/
const downloader = async (queryRequested, visualiszationRequested, fileName) => {
const response = await axios({
method: 'post',
url: `https://${process.env.METABASE_URL}/api/session`,
Expand All @@ -53,8 +19,8 @@ const placesDownloader = async () => {
const datasetPlaces = await axios.post(
'https://o2t37cyszh.execute-api.eu-west-3.amazonaws.com/api/dataset/json',
new URLSearchParams({
query: '{"database":2,"query":{"source-table":7},"type":"query","middleware":{"js-int-to-string?":true,"add-default-userland-constraints?":true}}',
visualization_settings: '{"column_settings":{},"table.pivot":false,"table.pivot_column":"report_count","table.cell_column":"latitude","table.columns":[{"name":"google_place_id","fieldRef":["field",44,null],"enabled":true},{"name":"name","fieldRef":["field",38,null],"enabled":true},{"name":"google_place_url","fieldRef":["field",46,null],"enabled":true},{"name":"address","fieldRef":["field",41,null],"enabled":true},{"name":"phone_number","fieldRef":["field",45,null],"enabled":true},{"name":"created_at","fieldRef":["field",43,{"temporal-unit":"default"}],"enabled":true},{"name":"report_count","fieldRef":["field",39,null],"enabled":true},{"name":"latitude","fieldRef":["field",42,null],"enabled":true},{"name":"longitude","fieldRef":["field",40,null],"enabled":true}],"table.column_formatting":[]}'
query: queryRequested,
visualization_settings: visualiszationRequested
}),
{
headers: {
Expand All @@ -78,10 +44,10 @@ const placesDownloader = async () => {

const json = JSON.stringify(datasetPlaces.data)

fs.writeFile('places.json', json, 'utf8', function (res, err) {
fs.writeFile(fileName, json, 'utf8', function (res, err) {
console.log(res, err)
})
}

reviewsDownloader()
placesDownloader()
downloader('{"database":2,"query":{"source-table":7},"type":"query","middleware":{"js-int-to-string?":true,"add-default-userland-constraints?":true}}', '{"column_settings":{},"table.pivot":false,"table.pivot_column":"report_count","table.cell_column":"latitude","table.columns":[{"name":"google_place_id","fieldRef":["field",44,null],"enabled":true},{"name":"name","fieldRef":["field",38,null],"enabled":true},{"name":"google_place_url","fieldRef":["field",46,null],"enabled":true},{"name":"address","fieldRef":["field",41,null],"enabled":true},{"name":"phone_number","fieldRef":["field",45,null],"enabled":true},{"name":"created_at","fieldRef":["field",43,{"temporal-unit":"default"}],"enabled":true},{"name":"report_count","fieldRef":["field",39,null],"enabled":true},{"name":"latitude","fieldRef":["field",42,null],"enabled":true},{"name":"longitude","fieldRef":["field",40,null],"enabled":true}],"table.column_formatting":[]}', 'places.json')
downloader('{"database":2,"query":{"source-table":6},"type":"query","middleware":{"js-int-to-string?":true,"add-default-userland-constraints?":true}}', '{"column_settings":{},"table.pivot":false,"table.pivot_column":"completed_at","table.cell_column":"do_it_for_me","table.columns":[{"name":"id","fieldRef":["field",48,null],"enabled":true},{"name":"google_place_id","fieldRef":["field",52,null],"enabled":true},{"name":"created_at","fieldRef":["field",49,{"temporal-unit":"default"}],"enabled":true},{"name":"completed_at","fieldRef":["field",51,{"temporal-unit":"default"}],"enabled":true},{"name":"type","fieldRef":["field",47,null],"enabled":true},{"name":"do_it_for_me","fieldRef":["field",50,null],"enabled":true}],"table.column_formatting":[]}', 'reviews.json')
4 changes: 2 additions & 2 deletions index.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ const ovh = require('ovh')({

/**
*
* @param {ID of place looked for} id
* @param {string} id
*
* @returns Place object
*/
Expand All @@ -34,7 +34,7 @@ const findPlaceById = (id) => {

/**
*
* @param {ID of place that we looked for reviews} id
* @param {string} id
* @returns Array of reviews for Google Place ID & with Do It For Me true
*/
const findOtherReviews = (id) => {
Expand Down

0 comments on commit 001d0a4

Please # to comment.