-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.js
More file actions
96 lines (88 loc) · 3.16 KB
/
index.js
File metadata and controls
96 lines (88 loc) · 3.16 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
require('dotenv').config()
const OBA = require('oba-api')
var fs = require("file-system")
// Setup authentication to api server
const client = new OBA({
// ProQuest API Keys
public: process.env.PUBLIC,
secret: process.env.SECRET
})
// General usage:
// client.get({ENDPOINT}, {PARAMS});
// ENDPOINT = search | details | refine | schema | availability | holdings
// PARAMS = API url parameter options (see api docs for more info)
// Client returns a promise which resolves the APIs output in JSON
// Example search to the word 'rijk' sorted by title:
var allData = [];
client.get("search", {
q: "format:books",
refine: true,
librarian: true
})
// Bron Sterre van Geest
.then(response => JSON.parse(response).aquabrowser)
.then(response => {
var selectedRctx = []
var selectedYears = []
var years = getYears(selectedYears)
selectedYears.forEach(function(years) {
client
.get("search", {
q: years,
librarian: true,
refine: true
})
.then(response => JSON.parse(response).aquabrowser)
.then(response => {
var rctx = response.meta.rctx
selectedRctx.push(rctx)
if (selectedRctx.length == 11) {
selectedRctx.forEach(function(selectedRctx) {
client
.get("refine", {
rctx: selectedRctx,
count: 100
})
.then(response => JSON.parse(response).aquabrowser)
.then(response => {
var genreFacet = getGenreFacet(response)
})
})
}
})
})
})
.catch(err => console.error(err))
// Voor elke 5 jaar worden de counts opgehaald vanaf 1965 t/m 2015
function getYears(selectedYears) {
var period = 50
for (var i = 0; i <= period; i = i + 5) {
var year = "year:" + (1965 + i)
selectedYears.push(year)
}
}
// Vorm data om naar hoe ik het wil ontvangen
function getGenreFacet(data) {
var languageId = data.meta["original-query"]
var year = languageId.slice(6, 10)
var facets = data.facets.facet
facets.forEach(function(facets) {
var facetId = facets.id
if (facetId === "Genre") {
var values = facets.value
values.forEach(function(values) {
var count = values.count
var id = values.id
allData.push({
year: year,
genre: id,
count: count
}) // Data naar json file
var allDataJson = JSON.stringify(allData)
fs.writeFileSync("data.json", allDataJson, err => {
if (err) throw err
})
})
}
})
}