From 44d98dfa4693e0802582423762df5e715351d5c1 Mon Sep 17 00:00:00 2001
From: Patrick Jentsch <p.jentsch@uni-bielefeld.de>
Date: Thu, 1 Jun 2023 11:24:09 +0200
Subject: [PATCH] Add inga method to cqi_over_socketio

---
 .../cqi_over_socketio/cqi_corpora_corpus.py        | 14 ++++++++++++++
 app/static/js/CorpusAnalysis/CQiClient.js          | 14 ++++++++++++++
 app/static/js/CorpusAnalysis/CorpusAnalysisApp.js  |  4 ++++
 3 files changed, 32 insertions(+)

diff --git a/app/corpora/cqi_over_socketio/cqi_corpora_corpus.py b/app/corpora/cqi_over_socketio/cqi_corpora_corpus.py
index 9a976dd7..e1054e1d 100644
--- a/app/corpora/cqi_over_socketio/cqi_corpora_corpus.py
+++ b/app/corpora/cqi_over_socketio/cqi_corpora_corpus.py
@@ -83,3 +83,17 @@ def cqi_corpora_corpus_paginate(cqi_client: cqi.CQiClient, corpus_name: str, pag
     # Number of the next page
     payload['next_num'] = payload['page'] + 1 if payload['has_next'] else None
     return {'code': 200, 'msg': 'OK', 'payload': payload}
+
+
+
+@socketio.on('cqi.corpora.corpus.inga', namespace=ns)
+@socketio_login_required
+@cqi_over_socketio
+def cqi_corpora_corpus_inga(cqi_client: cqi.CQiClient, corpus_name: str):
+    print('Hallo Inga')
+    cqi_corpus = cqi_client.corpora.get(corpus_name)
+    if cqi_corpus.size > 2000:
+        payload = cqi_corpus.size
+        return {'code': 200, 'msg': 'OK', 'payload': payload}
+    else:
+        return {'code': 456, 'msg': 'Ich habe keine Lust auf so kleine Korpusse'}
diff --git a/app/static/js/CorpusAnalysis/CQiClient.js b/app/static/js/CorpusAnalysis/CQiClient.js
index 4a3706e3..8a9d923e 100644
--- a/app/static/js/CorpusAnalysis/CQiClient.js
+++ b/app/static/js/CorpusAnalysis/CQiClient.js
@@ -150,6 +150,20 @@ class CQiCorpus {
 
     this.socket.emit('cqi.corpora.corpus.update_db', args);
   }
+
+  inga() {
+    return new Promise((resolve, reject) => {
+      const args = {corpus_name: this.name};
+
+      this.socket.emit('cqi.corpora.corpus.inga', args, response => {
+        if (response.code === 200) {
+          resolve(response.payload);
+        } else {
+          reject(response);
+        }
+      });
+    });
+  }
 }
 
 
diff --git a/app/static/js/CorpusAnalysis/CorpusAnalysisApp.js b/app/static/js/CorpusAnalysis/CorpusAnalysisApp.js
index f5cb8712..883ae4d0 100644
--- a/app/static/js/CorpusAnalysis/CorpusAnalysisApp.js
+++ b/app/static/js/CorpusAnalysis/CorpusAnalysisApp.js
@@ -35,6 +35,10 @@ class CorpusAnalysisApp {
       .then(
         cQiCorpus => {
           this.data.corpus = {o: cQiCorpus};
+          cQiCorpus.inga().then(
+            response => {console.log(response.payload);},  // Hier wird das promise behandelt, wenn es erfolgreich war
+            response => {console.log(`${response.code}: ${response.msg}`);}  // Hier wenn es nicht erfolgreich war
+          );
           // TODO: Don't do this here
           cQiCorpus.updateDb();
           this.enableActionElements();
-- 
GitLab