diff options
| author | Aldrik Ramaekers <aldrikboy@gmail.com> | 2025-10-04 18:36:31 +0200 |
|---|---|---|
| committer | Aldrik Ramaekers <aldrikboy@gmail.com> | 2025-10-04 18:36:31 +0200 |
| commit | cd827834f9ee329c27b82d987f0d1d48a854a954 (patch) | |
| tree | 3f2b63cc88f7d01ac6c55ff6c8cd5ff26dae55b5 /src/importer.cpp | |
| parent | 83cbf0e4a142ab2c57fd4fdfc056517b7149828b (diff) | |
namespace importer
Diffstat (limited to 'src/importer.cpp')
| -rw-r--r-- | src/importer.cpp | 51 |
1 files changed, 27 insertions, 24 deletions
diff --git a/src/importer.cpp b/src/importer.cpp index 3fe44a9..a533614 100644 --- a/src/importer.cpp +++ b/src/importer.cpp @@ -30,7 +30,10 @@ #include "locales.hpp" #include "file_templates.hpp" -ai_provider_impl _ai_get_impl() +extern importer::ai_provider_impl _chatgpt_api_provider; +extern importer::ai_provider_impl _deepseek_api_provider; + +importer::ai_provider_impl _ai_get_impl() { ai_provider provider = administration_get_ai_service().provider; @@ -41,24 +44,24 @@ ai_provider_impl _ai_get_impl() default: assert(0); break; } - return ai_provider_impl {0}; + return importer::ai_provider_impl {0}; } static int _ai_document_to_invoice_t(void *arg) { - import_invoice_request* request = (import_invoice_request*)arg; + importer::invoice_request* request = (importer::invoice_request*)arg; char* file_path = request->file_path; - ai_provider_impl impl = _ai_get_impl(); + importer::ai_provider_impl impl = _ai_get_impl(); - request->status = import_status::IMPORT_UPLOADING_FILE; + request->status = importer::status::IMPORT_UPLOADING_FILE; char file_id[100]; if (!impl.upload_file(file_path, file_id, 100)) { - request->status = import_status::IMPORT_DONE; + request->status = importer::status::IMPORT_DONE; request->error = I_ERR_FAILED_UPLOAD; return 0; } - request->status = import_status::IMPORT_QUERYING; + request->status = importer::status::IMPORT_QUERYING; size_t query_buffer_len = 50000; char* template_buffer = (char*)malloc(query_buffer_len); @@ -99,18 +102,18 @@ static int _ai_document_to_invoice_t(void *arg) { size_t query_len = strlen(template_buffer); strncpy(template_buffer + query_len, ai_query, query_buffer_len - query_len); - request->status = import_status::IMPORT_WAITING_FOR_RESPONSE; + request->status = importer::status::IMPORT_WAITING_FOR_RESPONSE; char* response; if (!impl.query_with_file(template_buffer, query_buffer_len, file_id, &response)) { - request->status = import_status::IMPORT_DONE; + request->status = importer::status::IMPORT_DONE; request->error = I_ERR_FAILED_QUERY; return 0; } invoice inv; if (!administration_reader::read_invoice_from_xml(&inv, response, strlen(response))) { - request->status = import_status::IMPORT_DONE; + request->status = importer::status::IMPORT_DONE; request->error = I_ERR_FAILED_IMPORT; return 0; } @@ -142,17 +145,17 @@ static int _ai_document_to_invoice_t(void *arg) { free(template_buffer); free(response); - request->status = import_status::IMPORT_DONE; + request->status = importer::status::IMPORT_DONE; request->result = administration_invoice_create_copy(&inv); return 0; } -import_invoice_request* ai_document_to_invoice(char* file_path) +importer::invoice_request* importer::ai_document_to_invoice(char* file_path) { - import_invoice_request* result = (import_invoice_request*)malloc(sizeof(import_invoice_request)); + importer::invoice_request* result = (importer::invoice_request*)malloc(sizeof(importer::invoice_request)); result->started_at = time(NULL); result->error = I_ERR_SUCCESS; - result->status = import_status::IMPORT_STARTING; + result->status = importer::status::IMPORT_STARTING; strops::copy(result->file_path, file_path, MAX_LEN_PATH); thrd_t thr; @@ -163,26 +166,26 @@ import_invoice_request* ai_document_to_invoice(char* file_path) return result; } -const char* import_status_to_str(import_status status) +const char* importer::status_to_string(importer::status status) { switch(status) { - case import_status::IMPORT_STARTING: return locale::get("import.status.starting"); - case import_status::IMPORT_UPLOADING_FILE: return locale::get("import.status.uploading_file"); - case import_status::IMPORT_QUERYING: return locale::get("import.status.querying"); - case import_status::IMPORT_WAITING_FOR_RESPONSE: return locale::get("import.status.waiting_for_result"); - case import_status::IMPORT_DONE: return locale::get("import.status.done"); + case importer::status::IMPORT_STARTING: return locale::get("import.status.starting"); + case importer::status::IMPORT_UPLOADING_FILE: return locale::get("import.status.uploading_file"); + case importer::status::IMPORT_QUERYING: return locale::get("import.status.querying"); + case importer::status::IMPORT_WAITING_FOR_RESPONSE: return locale::get("import.status.waiting_for_result"); + case importer::status::IMPORT_DONE: return locale::get("import.status.done"); } return ""; } -const char* import_error_to_str(i_err error) +const char* importer::error_to_string(importer::i_err error) { switch(error) { - case I_ERR_FAILED_UPLOAD: return locale::get("import.error.upload"); - case I_ERR_FAILED_QUERY: return locale::get("import.error.query"); - case I_ERR_FAILED_IMPORT: return locale::get("import.error.import"); + case I_ERR_FAILED_UPLOAD: return locale::get("import.error.upload"); + case I_ERR_FAILED_QUERY: return locale::get("import.error.query"); + case I_ERR_FAILED_IMPORT: return locale::get("import.error.import"); } return ""; }
\ No newline at end of file |
