Skip to content

Commit

Permalink
Merge pull request #125 from ssi-dk/ejl/fix-searchTranslation
Browse files Browse the repository at this point in the history
Ejl/fix search translation
  • Loading branch information
sjkp authored Dec 5, 2024
2 parents 1c18b58 + a03bd31 commit 471d7d2
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 5 deletions.
6 changes: 3 additions & 3 deletions app/src/app/i18n.ts
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ const fieldDisplayNames = {
animal_species: "Animal",
sample_info: "Info_sample",
cpr_nr: "CPR_no.",
gender: "M/F",
gender: "Gender",
name: "Name",
age: "Age",
primary_isolate: "Primary_isolate",
Expand Down Expand Up @@ -91,10 +91,10 @@ const fieldDisplayNames = {
amr_azi: "AMR_Azi",
amr_fep: "AMR_Fep",
amr_fot: "AMR_Fot",
amr_f_c: "AMR_F/C",
amr_f_c: "AMR_FC",
amr_fox: "AMR_Fox",
amr_taz: "AMR_Taz",
amr_t_c: "AMR_T/C",
amr_t_c: "AMR_TC",
amr_chl: "AMR_Chl",
amr_cip: "AMR_Cip",
amr_cli: "AMR_Cli",
Expand Down
30 changes: 28 additions & 2 deletions web/src/SAP/src/controllers/AnalysisController.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import base64
import json
import sys
from datetime import datetime
from flask import abort
from typing import Any, Dict
from web.src.SAP.generated.models.analysis_query import AnalysisQuery
Expand All @@ -25,16 +26,41 @@
from ..services.queue_service import post_and_await_reload
from ..services.search.transpiler import AbstractSyntaxTreeVisitor


def serialize_query_for_json(query):
if isinstance(query, dict):
return {k: serialize_query_for_json(v) for k, v in query.items()}
elif isinstance(query, list):
return [serialize_query_for_json(item) for item in query]
elif isinstance(query, datetime):
return query.isoformat()
else:
return query

def deserialize_query(query):
if isinstance(query, dict):
return {k: deserialize_query(v) for k, v in query.items()}
elif isinstance(query, list):
return [deserialize_query(item) for item in query]
elif isinstance(query, str):
try:
return datetime.fromisoformat(query)
except ValueError:
return query
else:
return query

def parse_paging_token(token):
if token:
body = base64.b64decode(token)
return json.loads(body)
parsed = json.loads(body)
deserialized_parsed = deserialize_query(parsed)
return deserialized_parsed
else:
return None


def render_paging_token(page_size, query, offset):
query = serialize_query_for_json(query)
body = {"page_size": int(page_size), "query": query, "offset": int(offset)}
return str(base64.b64encode(json.dumps(body).encode("utf8")), encoding="utf8")

Expand Down

0 comments on commit 471d7d2

Please sign in to comment.