MCPcopy Create free account
hub / github.com/apache/paimon-rust / create_database

Method create_database

crates/paimon/tests/mock_server.rs:136–169  ·  view source on GitHub ↗

Handle POST /databases - create a new database.

(
        Extension(state): Extension<Arc<RESTServer>>,
        Json(payload): Json<serde_json::Value>,
    )

Source from the content-addressed store, hash-verified

134 }
135 /// Handle POST /databases - create a new database.
136 pub async fn create_database(
137 Extension(state): Extension<Arc<RESTServer>>,
138 Json(payload): Json<serde_json::Value>,
139 ) -> impl IntoResponse {
140 let name = match payload.get("name").and_then(|n| n.as_str()) {
141 Some(n) => n.to_string(),
142 None => {
143 let err =
144 ErrorResponse::new(None, None, Some("Missing name".to_string()), Some(400));
145 return (StatusCode::BAD_REQUEST, Json(err)).into_response();
146 }
147 };
148
149 let mut s = state.inner.lock().unwrap();
150 if let std::collections::hash_map::Entry::Vacant(e) = s.databases.entry(name.clone()) {
151 let response = GetDatabaseResponse::new(
152 Some(name.clone()),
153 Some(name.clone()),
154 None,
155 HashMap::new(),
156 AuditRESTResponse::new(None, None, None, None, None),
157 );
158 e.insert(response);
159 (StatusCode::OK, Json(serde_json::json!(""))).into_response()
160 } else {
161 let err = ErrorResponse::new(
162 Some("database".to_string()),
163 Some(name),
164 Some("Already Exists".to_string()),
165 Some(409),
166 );
167 (StatusCode::CONFLICT, Json(err)).into_response()
168 }
169 }
170 /// Handle GET /databases/:name - get a specific database.
171 pub async fn get_database(
172 Path(name): Path<String>,

Calls 3

entryMethod · 0.80
insertMethod · 0.80
getMethod · 0.45

Tested by

no test coverage detected