mirror of
https://gitlab.ub.uni-bielefeld.de/sfb1288inf/nopaque.git
synced 2025-06-17 03:20:39 +00:00
Replace the old js CQiClient with fully featured new one
This commit is contained in:
@ -1,6 +1,13 @@
|
||||
cqi.api.APIClient = class APIClient {
|
||||
constructor(host, corpus_id, version = '0.1') {
|
||||
/**
|
||||
* @param {string} host
|
||||
* @param {string} corpusId
|
||||
* @param {number} [timeout=Infinity] timeout
|
||||
* @param {string} [version=0.1] version
|
||||
*/
|
||||
constructor(host, corpus_id, timeout = Infinity, version = '0.1') {
|
||||
this.host = host;
|
||||
this.timeout = timeout;
|
||||
this.version = version;
|
||||
this.socket = io(
|
||||
this.host,
|
||||
@ -19,7 +26,8 @@ cqi.api.APIClient = class APIClient {
|
||||
*/
|
||||
#request(fn_name, fn_args = {}) {
|
||||
return new Promise((resolve, reject) => {
|
||||
this.socket.emit('cqi_client.api', {fn_name: fn_name, fn_args: fn_args}, (response) => {
|
||||
// TODO: implement this.socket.timeout(this.timeout).emit(...)
|
||||
this.socket.emit('cqi', {fn_name: fn_name, fn_args: fn_args}, (response) => {
|
||||
if (response.code === 200) {
|
||||
resolve(response.payload);
|
||||
}
|
||||
@ -595,4 +603,84 @@ cqi.api.APIClient = class APIClient {
|
||||
const fn_args = {subcorpus: subcorpus, cutoff: cutoff, field1: field1, attribute1: attribute1, field2: field2, attribute2: attribute2};
|
||||
return await this.#request(fn_name, fn_args);
|
||||
}
|
||||
|
||||
/**
|
||||
* NOTE: The following functions are non standard implementations of nopaque
|
||||
*/
|
||||
|
||||
/**
|
||||
* @param {string} corpus
|
||||
* @returns {Promise<cqi.status.StatusOk>}
|
||||
*/
|
||||
async corpus_update_db(corpus) {
|
||||
const fn_name = 'nopaque_corpus_update_db';
|
||||
const fn_args = {corpus: corpus};
|
||||
let payload = await this.#request(fn_name, fn_args);
|
||||
return new cqi.status.lookup[payload.code]();
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {string} corpus
|
||||
* @returns {Promise<object>}
|
||||
*/
|
||||
async corpus_static_data(corpus) {
|
||||
const fn_name = 'nopaque_corpus_static_data';
|
||||
const fn_args = {corpus: corpus};
|
||||
return await this.#request(fn_name, fn_args);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {string} corpus
|
||||
* @param {number=} page
|
||||
* @param {number=} per_page
|
||||
* @returns {Promise<object>}
|
||||
*/
|
||||
async corpus_paginate_corpus(corpus, page, per_page) {
|
||||
const fn_name = 'nopaque_corpus_paginate_corpus';
|
||||
const fn_args = {corpus: corpus}
|
||||
if (page !== undefined) {fn_args.page = page;}
|
||||
if (per_page !== undefined) {fn_args.per_page = per_page;}
|
||||
return await this.#request(fn_name, fn_args);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {string} subcorpus
|
||||
* @param {number=} context
|
||||
* @param {number=} page
|
||||
* @param {number=} per_page
|
||||
* @returns {Promise<object>}
|
||||
*/
|
||||
async cqp_paginate_subcorpus(subcorpus, context, page, per_page) {
|
||||
const fn_name = 'nopaque_cqp_paginate_subcorpus';
|
||||
const fn_args = {subcorpus: subcorpus}
|
||||
if (context !== undefined) {fn_args.context = context;}
|
||||
if (page !== undefined) {fn_args.page = page;}
|
||||
if (per_page !== undefined) {fn_args.per_page = per_page;}
|
||||
return await this.#request(fn_name, fn_args);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {string} subcorpus
|
||||
* @param {number[]} match_id_list
|
||||
* @param {number=} context
|
||||
* @returns {Promise<object>}
|
||||
*/
|
||||
async cqp_partial_export_subcorpus(subcorpus, match_id_list, context) {
|
||||
const fn_name = 'nopaque_cqp_partial_export_subcorpus';
|
||||
const fn_args = {subcorpus: subcorpus, match_id_list: match_id_list};
|
||||
if (context !== undefined) {fn_args.context = context;}
|
||||
return await this.#request(fn_name, fn_args);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {string} subcorpus
|
||||
* @param {number=} context
|
||||
* @returns {Promise<object>}
|
||||
*/
|
||||
async cqp_export_subcorpus(subcorpus, context) {
|
||||
const fn_name = 'nopaque_cqp_export_subcorpus';
|
||||
const fn_args = {subcorpus: subcorpus};
|
||||
if (context !== undefined) {fn_args.context = context;}
|
||||
return await this.#request(fn_name, fn_args);
|
||||
}
|
||||
};
|
||||
|
Reference in New Issue
Block a user