Project

General

Profile

Download (1.34 KB) Statistics
| Branch: | Tag: | Revision:

haketilo / content / repo_query.js @ c483ae19

1
/**
2
 * part of Hachette
3
 * Getting available content for site from remote repositories.
4
 *
5
 * Copyright (C) 2021 Wojtek Kosior
6
 * Redistribution terms are gathered in the `copyright' file.
7
 */
8

    
9
/*
10
 * IMPORTS_START
11
 * IMPORT make_ajax_request
12
 * IMPORTS_END
13
 */
14

    
15
var query_started = false;
16

    
17
var url = undefined;
18
var repos = undefined;
19
var callback = undefined;
20

    
21
async function query(repo)
22
{
23
    const [repo_url, data] = repo;
24

    
25
    let response = "Query failed";
26
    const query_url = `${repo_url}/query?n=${encodeURIComponent(url)}`;
27

    
28
    try {
29
	let xhttp = await make_ajax_request("GET", query_url);
30
	if (xhttp.status === 200)
31
	    response = xhttp.responseText;
32
	console.log(xhttp);
33
    } catch (e) {
34
	console.log(e);
35
    }
36

    
37
    callback([repo_url, response]);
38
}
39

    
40
function start_query()
41
{
42
    if (query_started || !url || !repos || !callback)
43
	return;
44

    
45
    query_started = true;
46

    
47
    console.log(`about to query ${url} from ${repos}`);
48

    
49
    for (const repo of repos)
50
	query(repo);
51
}
52

    
53
function set_repo_query_url(_url)
54
{
55
    url = _url;
56

    
57
    start_query();
58
}
59

    
60
function set_repo_query_repos(_repos)
61
{
62
    repos = _repos;
63

    
64
    start_query();
65
}
66

    
67
function set_repo_query_callback(_callback)
68
{
69
    callback = _callback;
70

    
71
    start_query();
72
}
73

    
74
/*
75
 * EXPORTS_START
76
 * EXPORT set_repo_query_url
77
 * EXPORT set_repo_query_repos
78
 * EXPORT set_repo_query_callback
79
 * EXPORTS_END
80
 */
(5-5/5)