mirror of
https://github.com/bellingcat/datasheet-server.git
synced 2026-06-12 21:38:32 +03:00
update config
This commit is contained in:
3
.gitignore
vendored
3
.gitignore
vendored
@@ -7,12 +7,9 @@
|
|||||||
|
|
||||||
.env
|
.env
|
||||||
*service-account-key\.json
|
*service-account-key\.json
|
||||||
src/config.js
|
|
||||||
/yarn-error.log
|
/yarn-error.log
|
||||||
*.pem
|
*.pem
|
||||||
.travis.yml.old
|
.travis.yml.old
|
||||||
tags
|
tags
|
||||||
tags.lock
|
tags.lock
|
||||||
tags.temp
|
tags.temp
|
||||||
|
|
||||||
src/sheets_config.js
|
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ RUN cd /www; yarn
|
|||||||
COPY . /www
|
COPY . /www
|
||||||
WORKDIR /www
|
WORKDIR /www
|
||||||
RUN yarn build
|
RUN yarn build
|
||||||
RUN mkdir -p temp
|
RUN mkdir -p data
|
||||||
|
|
||||||
# set your port
|
# set your port
|
||||||
ENV PORT 8080
|
ENV PORT 8080
|
||||||
|
|||||||
@@ -76,7 +76,7 @@ Other configuration options, such as the port at which the server will expose
|
|||||||
resources, are also modifiable from the .env file.
|
resources, are also modifiable from the .env file.
|
||||||
|
|
||||||
#### [Sources](#sources)
|
#### [Sources](#sources)
|
||||||
Sources are specified in [src/sheets_config.js](https://github.com/forensic-architecture/datasheet-server/blob/develop/src/sheets_config.js). Datasheet server currently only supports Google Sheets as a source.
|
Sources are specified in [src/config.js](https://github.com/forensic-architecture/datasheet-server/blob/develop/src/config.js). Datasheet server currently only supports Google Sheets as a source.
|
||||||
|
|
||||||
###### [Google Sheets](#source-google-sheets)
|
###### [Google Sheets](#source-google-sheets)
|
||||||
| sheets | A list of objects, one for each sheet that is being used as a source. Each sheet object has a `name` (String), an `id` (String), and a `tabs` (object) field, which are explained below. | object |
|
| sheets | A list of objects, one for each sheet that is being used as a source. Each sheet object has a `name` (String), an `id` (String), and a `tabs` (object) field, which are explained below. | object |
|
||||||
|
|||||||
3
data/.gitignore
vendored
Normal file
3
data/.gitignore
vendored
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
*
|
||||||
|
!.gitignore
|
||||||
|
!timemap_data.xlsx
|
||||||
BIN
data/timemap_data.xlsx
Normal file
BIN
data/timemap_data.xlsx
Normal file
Binary file not shown.
@@ -8,10 +8,10 @@ management of the sheets it represents.
|
|||||||
It exposes an API with four endpoints:
|
It exposes an API with four endpoints:
|
||||||
* `/:sheet/:tab/:resource` - the primary means of accessing data in the
|
* `/:sheet/:tab/:resource` - the primary means of accessing data in the
|
||||||
server. The name of a sheet is specified in
|
server. The name of a sheet is specified in
|
||||||
[sheets_config.js](https://github.com/forensic-architecture/datasheet-server/blob/develop/src/sheets_config.js#L7).
|
[_config.js](https://github.com/forensic-architecture/datasheet-server/blob/develop/src/config.js#L7).
|
||||||
Each tab on the sheet is in lower case, with spaces replaced by
|
Each tab on the sheet is in lower case, with spaces replaced by
|
||||||
underscores. The resource name is the same as the name of the blueprinter
|
underscores. The resource name is the same as the name of the blueprinter
|
||||||
specified for the tab is sheets_config.js.
|
specified for the tab is config.js.
|
||||||
* `/:sheet/:tab/:resource/:id` - when the resource is a list, items in the list
|
* `/:sheet/:tab/:resource/:id` - when the resource is a list, items in the list
|
||||||
can be accessed individually as well.
|
can be accessed individually as well.
|
||||||
* `/update` - when this route is queried with a GET request, each of the
|
* `/update` - when this route is queried with a GET request, each of the
|
||||||
|
|||||||
12
src/config.js
Normal file
12
src/config.js
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
import { tabs, prefixedTabs } from './lib'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
gsheets: [],
|
||||||
|
xlsx: [
|
||||||
|
{
|
||||||
|
name: 'timemap_data',
|
||||||
|
path: 'data/timemap_data.xlsx',
|
||||||
|
tabs
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -3,7 +3,6 @@ import express from 'express'
|
|||||||
import initialize from './initialize'
|
import initialize from './initialize'
|
||||||
import middleware from './middleware'
|
import middleware from './middleware'
|
||||||
import api from './api'
|
import api from './api'
|
||||||
// import config from './sheets_config'
|
|
||||||
import dotenv from 'dotenv'
|
import dotenv from 'dotenv'
|
||||||
const hbs = require('express-handlebars')
|
const hbs = require('express-handlebars')
|
||||||
|
|
||||||
@@ -41,6 +40,8 @@ initialize(controller => {
|
|||||||
})
|
})
|
||||||
)
|
)
|
||||||
|
|
||||||
|
app.use(express.static(__dirname + '/public'))
|
||||||
|
|
||||||
app.server.listen(process.env.PORT || 4040, () => {
|
app.server.listen(process.env.PORT || 4040, () => {
|
||||||
console.log('===========================================')
|
console.log('===========================================')
|
||||||
console.log(`Server running on port ${app.server.address().port}`)
|
console.log(`Server running on port ${app.server.address().port}`)
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import StoreJson from './models/StoreJson'
|
import StoreJson from './models/StoreJson'
|
||||||
import fetchers from './lib/Fetcher'
|
import fetchers from './lib/Fetcher'
|
||||||
import Controller from './lib/Controller'
|
import Controller from './lib/Controller'
|
||||||
import config from './sheets_config'
|
import config from './config'
|
||||||
import R from 'ramda'
|
import R from 'ramda'
|
||||||
|
|
||||||
const isntNull = n => n !== null
|
const isntNull = n => n !== null
|
||||||
|
|||||||
21
src/lib.js
Normal file
21
src/lib.js
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
import BP from './lib/blueprinters'
|
||||||
|
|
||||||
|
export function prefixedTabs (prefix) {
|
||||||
|
return {
|
||||||
|
[`${prefix}_export_events`]: BP.deeprows,
|
||||||
|
[`${prefix}_export_categories`]: [BP.groups, BP.rows],
|
||||||
|
[`${prefix}_export_filters`]: BP.tree,
|
||||||
|
[`${prefix}_export_narratives`]: BP.rows,
|
||||||
|
[`${prefix}_export_sources`]: BP.deepids,
|
||||||
|
[`${prefix}_export_sites`]: BP.rows
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export const tabs = {
|
||||||
|
export_events: BP.deeprows,
|
||||||
|
export_categories: [BP.groups, BP.rows],
|
||||||
|
export_filters: BP.tree,
|
||||||
|
export_narratives: BP.rows,
|
||||||
|
export_sources: BP.deepids,
|
||||||
|
export_sites: BP.rows
|
||||||
|
}
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
import fs from 'mz/fs'
|
import fs from 'mz/fs'
|
||||||
import errors from '../lib/errors'
|
import errors from '../lib/errors'
|
||||||
|
|
||||||
const STORAGE_DIRNAME = 'temp'
|
const STORAGE_DIRNAME = 'data'
|
||||||
|
|
||||||
function partsFromFilename (fname) {
|
function partsFromFilename (fname) {
|
||||||
const body = fname.slice(0, -5)
|
const body = fname.slice(0, -5)
|
||||||
|
|||||||
@@ -1,46 +0,0 @@
|
|||||||
import BP from './lib/blueprinters'
|
|
||||||
|
|
||||||
const timemapStructure = {
|
|
||||||
export_events: BP.deeprows,
|
|
||||||
export_categories: [BP.groups, BP.rows],
|
|
||||||
export_narratives: BP.rows,
|
|
||||||
export_sources: BP.deepids,
|
|
||||||
export_sites: BP.rows,
|
|
||||||
export_tags: BP.tree
|
|
||||||
}
|
|
||||||
|
|
||||||
const treatyStructure = {
|
|
||||||
treaty_export_events: BP.deeprows,
|
|
||||||
treaty_export_categories: [BP.groups, BP.rows],
|
|
||||||
export_narratives: BP.rows,
|
|
||||||
treaty_export_sources: BP.deepids,
|
|
||||||
export_sites: BP.rows,
|
|
||||||
export_tags: BP.tree
|
|
||||||
}
|
|
||||||
|
|
||||||
const moraldriftStructure = {
|
|
||||||
moraldrift_export_events: BP.deeprows,
|
|
||||||
moraldrift_export_categories: [BP.groups, BP.rows],
|
|
||||||
moraldrift_export_narratives: BP.rows,
|
|
||||||
moraldrift_export_sources: BP.deepids,
|
|
||||||
moraldrift_export_sites: BP.rows,
|
|
||||||
moraldrift_export_tags: BP.tree
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
export default {
|
|
||||||
gsheets: [{
|
|
||||||
name: 'example',
|
|
||||||
id: '1UC7DkCFeUXHfpUxUGruExwFbP4pqVBdJLOKfo6wDDGk',
|
|
||||||
tabs: timemapStructure,
|
|
||||||
}],
|
|
||||||
|
|
||||||
|
|
||||||
xlsx: [
|
|
||||||
/** {
|
|
||||||
name: 'my_local_sheet',
|
|
||||||
tabs: timemapStructure,
|
|
||||||
path: 'temp/my_local_sheet.xlsx'
|
|
||||||
} **/
|
|
||||||
]
|
|
||||||
}
|
|
||||||
2
temp/.gitignore
vendored
2
temp/.gitignore
vendored
@@ -1,2 +0,0 @@
|
|||||||
*
|
|
||||||
!.gitignore
|
|
||||||
Reference in New Issue
Block a user