Skip to content

Commit ac42617

Browse files
committed
fix
1 parent 943c7bd commit ac42617

File tree

2 files changed

+39
-16
lines changed

2 files changed

+39
-16
lines changed

backend/src/db/db.ts

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ async function fillDb(statutes: StatuteKey[], judgments: JudgmentKey[]): Promise
2222
let i = 0;
2323
for (const key of statutes) {
2424
++i;
25-
const url = buildFinlexUrl(key)
26-
console.log('URL', url)
25+
const { uri } = buildFinlexUrl(key)
26+
console.log('URL', uri)
2727
await setSingleStatute(buildFinlexUrl(key));
2828
if (i % 100 === 0) {
2929
console.log(`Inserted ${i} statutes (${statutes.length})`)
@@ -376,12 +376,12 @@ async function closePool() {
376376

377377
async function setupTestDatabase(): Promise<void> {
378378
await createTables();
379-
await setSingleStatute("https://opendata.finlex.fi/finlex/avoindata/v1/akn/fi/act/statute-consolidated/2023/9/fin@")
380-
await setSingleStatute("https://opendata.finlex.fi/finlex/avoindata/v1/akn/fi/act/statute-consolidated/2023/9/swe@")
381-
await setSingleStatute("https://opendata.finlex.fi/finlex/avoindata/v1/akn/fi/act/statute-consolidated/2023/4/fin@")
382-
await setSingleStatute("https://opendata.finlex.fi/finlex/avoindata/v1/akn/fi/act/statute-consolidated/2023/4/swe@")
383-
await setSingleStatute("https://opendata.finlex.fi/finlex/avoindata/v1/akn/fi/act/statute-consolidated/2023/5/fin@")
384-
await setSingleStatute("https://opendata.finlex.fi/finlex/avoindata/v1/akn/fi/act/statute-consolidated/2023/5/swe@")
379+
await setSingleStatute({ uri: "https://opendata.finlex.fi/finlex/avoindata/v1/akn/fi/act/statute-consolidated/2023/9/fin@", uriOld: ''})
380+
await setSingleStatute({ uri: "https://opendata.finlex.fi/finlex/avoindata/v1/akn/fi/act/statute-consolidated/2023/9/swe@", uriOld: ''})
381+
await setSingleStatute({ uri: "https://opendata.finlex.fi/finlex/avoindata/v1/akn/fi/act/statute-consolidated/2023/4/fin@", uriOld: ''})
382+
await setSingleStatute({ uri: "https://opendata.finlex.fi/finlex/avoindata/v1/akn/fi/act/statute-consolidated/2023/4/swe@", uriOld: ''})
383+
await setSingleStatute({ uri: "https://opendata.finlex.fi/finlex/avoindata/v1/akn/fi/act/statute-consolidated/2023/5/fin@", uriOld: ''})
384+
await setSingleStatute({ uri: "https://opendata.finlex.fi/finlex/avoindata/v1/akn/fi/act/statute-consolidated/2023/5/swe@", uriOld: ''})
385385
await setSingleJudgment("https://www.finlex.fi/fi/oikeuskaytanto/korkein-hallinto-oikeus/ennakkopaatokset/2005/13")
386386
await setSingleJudgment("https://www.finlex.fi/sv/rattspraxis/hogsta-forvaltningsdomstolen/prejudikat/2005/13")
387387
await setSingleJudgment("https://www.finlex.fi/fi/oikeuskaytanto/korkein-oikeus/ennakkopaatokset/2023/5")

backend/src/db/load.ts

Lines changed: 31 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -40,13 +40,17 @@ function parseFinlexUrl(url: string): { docYear: number; docNumber: string; docL
4040
}
4141
}
4242

43-
function buildFinlexUrl(statute: StatuteKey): string {
44-
// const baseUrl = 'https://opendata.finlex.fi/finlex/avoindata/v1/akn/fi/act/statute-consolidated';
45-
// return `${baseUrl}/${statute.year}/${statute.number}/${statute.language}@${statute.version ? statute.version : ''}`;
43+
function buildFinlexUrl(statute: StatuteKey): { uri: string, uriOld: string } {
44+
const oldBaseUrl = 'https://opendata.finlex.fi/finlex/avoindata/v1/akn/fi/act/statute-consolidated';
4645
const baseUrl = 'https://opendata.finlex.fi/finlex/avoindata/v1/akn/fi/act/statute'
47-
return `${baseUrl}/${statute.year}/${statute.number}/${statute.language}@`;
46+
return {
47+
uri: `${baseUrl}/${statute.year}/${statute.number}/${statute.language}@`,
48+
uriOld: `${oldBaseUrl}/${statute.year}/${statute.number}/${statute.language}@${statute.version ? statute.version : ''}`
49+
};
4850
}
4951

52+
53+
5054
function parseJudgmentUrl(url: string): JudgmentKey {
5155
const u = new URL(url)
5256
const parts = u.pathname.split("/").filter(p => p !== "")
@@ -323,10 +327,29 @@ async function setImages(statuteUuid: string, docYear: number, docNumber: string
323327
}
324328
}
325329

326-
async function setSingleStatute(uri: string) {
327-
const result = await axios.get(`${uri}`, {
328-
headers: { 'Accept': 'application/xml', 'Accept-Encoding': 'gzip' }
329-
})
330+
async function fetchStatute(uri: string) {
331+
try {
332+
const result = await axios.get(`${uri}`, {
333+
headers: { 'Accept': 'application/xml', 'Accept-Encoding': 'gzip' }
334+
})
335+
return result
336+
} catch {
337+
return null
338+
}
339+
}
340+
341+
async function setSingleStatute(uris : { uri: string, uriOld: string}) {
342+
const { uri, uriOld } = uris
343+
let result = await fetchStatute(uri)
344+
if (!result) {
345+
result = await fetchStatute(uriOld)
346+
if (!result) {
347+
console.log(' --> not found: ', uri)
348+
console.log(' --> : ', uriOld)
349+
return null
350+
}
351+
}
352+
330353
const docTitle = await parseTitlefromXML(result)
331354
const imageLinks = await parseImagesfromXML(result)
332355
const keywordList = await parseKeywordsfromXML(result)

0 commit comments

Comments
 (0)