feat(meilisearch): add native document database support
This commit is contained in:
79 files changed
+1801
-170
No files matched your search
@@ -774,6 +774,7 @@ async fn main() {
|
||||
.route("/document-store/insert-document", post(routes::document_store::insert_document))
|
||||
.route("/document-store/update-document", post(routes::document_store::update_document))
|
||||
.route("/document-store/delete-document", post(routes::document_store::delete_document))
|
||||
.route("/document-store/save-meilisearch-batch", post(routes::document_store::save_meilisearch_batch))
|
||||
.route("/mongo/find-documents", post(routes::mongo::find_documents))
|
||||
.route("/mongo/parse-shell-command", post(routes::mongo::parse_shell_command))
|
||||
.route("/mongo/explain-find", post(routes::mongo::explain_find))
|
||||
|
||||
@@ -112,6 +112,16 @@ pub struct DocumentDeleteRequest {
|
||||
pub document_type: Option<String>,
|
||||
}
|
||||
|
||||
#[derive(Deserialize)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
pub struct MeilisearchBatchSaveRequest {
|
||||
pub connection_id: String,
|
||||
pub collection: String,
|
||||
pub updates: Vec<dbx_core::db::meilisearch_driver::MeilisearchDocumentUpdate>,
|
||||
pub delete_ids: Vec<String>,
|
||||
pub inserts: Vec<String>,
|
||||
}
|
||||
|
||||
#[derive(Deserialize)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
pub struct GridFsBucketRequest {
|
||||
@@ -286,6 +296,24 @@ pub async fn delete_document(
|
||||
Ok(Json(result))
|
||||
}
|
||||
|
||||
pub async fn save_meilisearch_batch(
|
||||
State(state): State<Arc<WebState>>,
|
||||
Json(req): Json<MeilisearchBatchSaveRequest>,
|
||||
) -> Result<Json<u64>, AppError> {
|
||||
ensure_writable(&state.app, &req.connection_id, "Save").await?;
|
||||
let result = dbx_core::document_ops::save_meilisearch_document_batch_core(
|
||||
&state.app,
|
||||
&req.connection_id,
|
||||
&req.collection,
|
||||
&req.updates,
|
||||
&req.delete_ids,
|
||||
&req.inserts,
|
||||
)
|
||||
.await
|
||||
.map_err(AppError::from)?;
|
||||
Ok(Json(result))
|
||||
}
|
||||
|
||||
pub async fn list_gridfs_files(
|
||||
State(state): State<Arc<WebState>>,
|
||||
Json(req): Json<GridFsFileListRequest>,
|
||||
|
||||
Reference in new issue
Block a user