Skip to content
This repository has been archived by the owner on Sep 11, 2020. It is now read-only.

Commit

Permalink
refactor: isole le code de l'api
Browse files Browse the repository at this point in the history
  • Loading branch information
francoisromain committed Mar 18, 2020
1 parent 7c7d84c commit ca785da
Show file tree
Hide file tree
Showing 16 changed files with 46 additions and 24 deletions.
File renamed without changes.
File renamed without changes.
11 changes: 11 additions & 0 deletions api/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
const apiFetch = require('./_utils/fetch')

const apiUrl = process.env.API_URL

const apiGet = async (prop, { query, variables = {} }) => {
const res = await apiFetch(apiUrl, JSON.stringify({ query, variables }))

return res && res.data && res.data[prop]
}

module.exports = apiGet
15 changes: 15 additions & 0 deletions api/queries.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
const { join } = require('path')
const fileImport = require('./_utils/file-import')

const queries = async () => {
const titresQuery = await fileImport(join(__dirname, 'queries/titres.gql'))
const domainesQuery = await fileImport(
join(__dirname, 'queries/domaines.gql')
)
const typesQuery = await fileImport(join(__dirname, 'queries/types.gql'))
const statutsQuery = await fileImport(join(__dirname, 'queries/statuts.gql'))

return { titresQuery, domainesQuery, typesQuery, statutsQuery }
}

module.exports = queries
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
5 changes: 5 additions & 0 deletions dynamic/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
require('dotenv').config()

const apiGet = require('../api/index')
const queries = require('../api/queries')
const geojsonFormat = require('../utils/geojson-format')
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
},
"main": "index.js",
"scripts": {
"build": "node --no-warnings ./worker/index.js",
"build": "node --no-warnings ./static/index.js",
"dev": "onchange '**/*.js' -i -k -- npm run build",
"start": "npm run build & node ./index.js",
"commit": "npx git-cz",
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
37 changes: 14 additions & 23 deletions worker/index.js → static/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,17 +6,16 @@ require('dotenv').config()
const { join } = require('path')
var { job } = require('cron')

const fileImport = require('./_utils/file-import')
const apiGet = require('../api/index')
const queries = require('../api/queries')
const geojsonFormat = require('../utils/geojson-format')

const fileCreate = require('./_utils/file-create')
const directoryDelete = require('./_utils/directory-delete')
const directoryCreate = require('./_utils/directory-create')
const apiFetch = require('./_utils/api-fetch')
const geojsonFormat = require('./geojson-format')
const definitions = require('./definitions')
const EXPORT_DIRECTORY = '../public/geojson/'

const apiUrl = process.env.API_URL

const domainesCouleurs = {
m: '#498bd6',
h: '#856940',
Expand All @@ -28,12 +27,6 @@ const domainesCouleurs = {
f: '#a8782f'
}

const apiGet = async ({ query, variables = {} }, prop) => {
const res = await apiFetch(apiUrl, JSON.stringify({ query, variables }))

return res && res.data && res.data[prop]
}

const metasBuild = (definition, metas) =>
Object.keys(definition).reduce((metasObj, metaIdsName) => {
const metaName = `${metaIdsName.slice(0, -3)}`
Expand All @@ -54,7 +47,7 @@ const metasBuild = (definition, metas) =>

const geojsonsBuild = async (definitions, query, metas) =>
definitions.reduce(async (geojsons, definition) => {
const titres = await apiGet({ query, variables: definition }, 'titres')
const titres = await apiGet('titres', { query, variables: definition })

if (!titres || !titres.length) return geojsons

Expand Down Expand Up @@ -100,14 +93,12 @@ const infosFileCreate = async infos => {
const run = async () => {
try {
// importe les requêtes graphQL
const titresQuery = await fileImport(join(__dirname, 'queries/titres.gql'))
const domainesQuery = await fileImport(
join(__dirname, 'queries/domaines.gql')
)
const typesQuery = await fileImport(join(__dirname, 'queries/types.gql'))
const statutsQuery = await fileImport(
join(__dirname, 'queries/statuts.gql')
)
const {
titresQuery,
domainesQuery,
typesQuery,
statutsQuery
} = await queries()

// efface le dossier cible et son contenu
await directoryDelete(join(__dirname, EXPORT_DIRECTORY))
Expand All @@ -116,9 +107,9 @@ const run = async () => {
await directoryCreate(join(__dirname, EXPORT_DIRECTORY))

// récupère les domaines, types et statuts
const domaines = await apiGet({ query: domainesQuery }, 'domaines')
const types = await apiGet({ query: typesQuery }, 'types')
const statuts = await apiGet({ query: statutsQuery }, 'statuts')
const domaines = await apiGet('domaines', { query: domainesQuery })
const types = await apiGet('types', { query: typesQuery })
const statuts = await apiGet('statuts', { query: statutsQuery })

const metas = { types, domaines, statuts }

Expand Down
File renamed without changes.

1 comment on commit ca785da

@risseraka
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please sign in to comment.