2.0.2 • Published 2 years ago
@qians/levitas_client_wasm v2.0.2
Levitas Client
Author: qians Date: 2022/5/1 WasmVersion: 1.0.0
Request
Create
let d1 = js_sys::Map::new()
.set(&JsValue::from_str("t-name"), &JsValue::from_str("h"))
.set(&JsValue::from_str("t-age"), &JsValue::from_f64(10.0));
let d1 = JsValue::from(d1);
let d2 = js_sys::Map::new()
.set(&JsValue::from_str("t-name"), &JsValue::from_str("hhh"))
.set(&JsValue::from_str("t-age"), &JsValue::from_f64(10.0));
let d2 = JsValue::from(d2);
let req = Request::project("project".to_string())
.table("table".to_string())
.create()
.create_one(d1)
.create_one(d2)
.done()
.to_string();
let reqj = serde_json::json!({
"project": "project",
"table": "table",
"data":[
{
"t-name": "h",
"t-age": 10
},
{
"t-name": "hhh",
"t-age": 10
}
]
})
.to_string();
assert_eq!(req, reqj)
Query
let req = Request::project("project".to_string())
.table("table".to_string())
.query(
Query::new().and(
ClauseBuilder::new()
.gt("t-id".to_string(), JsValue::from_f64(1.1))
.query(
Query::new()
.and(
ClauseBuilder::new()
.lt("t-id".to_string(), JsValue::from_f64(1.1)),
)
.or(ClauseBuilder::new()
.eq("t-id".to_string(), JsValue::from_str("qians"))),
),
),
)
.desc("t-id".to_string())
.field("t-id".to_string())
.field("t-name".to_string())
.aggs(Aggs::new().aggr("space".to_string(), |b| {
b.terms("path_code".to_string()).aggs(
Aggs::new().aggr("receiver".to_string(), |b| b.terms("receiver".to_string())),
)
}))
.pagination(1, 4)
.done()
.to_string();
let reqj = serde_json::json!({
"project": "project",
"table": "table",
"conditions": {
"pagination": {
"page": 1,
"pageSize": 4
},
"order": {
"t-id": "desc"
},
"fields": ["t-id", "t-name"],
"query": {
"and": [
{"range": {"t-id": {"gt": 1.1}}},
{"query": {
"and": [
{"range": {"t-id": {"lt": 1.1}}}
],
"or": [
{"match": {"t-id": "qians"}}
]
}}
]
},
"aggs": {
"space": {
"terms": {
"field": "path_code"
},
"aggs": {
"receiver": {
"terms": {
"field": "receiver"
}
}
}
}
}
}
})
.to_string();
assert_eq!(req, reqj);
UpdateByQuery
let data = js_sys::Map::new()
.set(&JsValue::from_str("t-name"), &JsValue::from_str("hhh"))
.set(&JsValue::from_str("t-age"), &JsValue::from_f64(10.0));
let data = JsValue::from(data);
let req = Request::project("project".to_string())
.table("table".to_string())
.update_by_query(
Query::new().and(ClauseBuilder::new().eq("id".to_string(), JsValue::from_str("2"))),
)
.done(data)
.to_string();
let qv = serde_json::json!({
"project": "project",
"table": "table",
"query": {
"and": [
{"match": {"id": "2"}}
]
},
"data": {
"t-name": "hhh",
"t-age": 10
}
})
.to_string();
assert_eq!(req, qv);