Compare commits
6 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 4874c09fb5 | |||
| 86d49273bc | |||
| 724a9e3e44 | |||
| 5b2feb5ea7 | |||
| 473b087d97 | |||
| 6d6745d95d |
20
src/lib.rs
20
src/lib.rs
@ -44,7 +44,7 @@ fn jspg_failure() -> JsonB {
|
||||
}
|
||||
|
||||
#[cfg_attr(not(test), pg_extern(strict))]
|
||||
pub fn jspg_setup(database: Json) -> JsonB {
|
||||
pub fn jspg_setup(database: Json) -> Json {
|
||||
let (new_jspg, drop) = crate::jspg::Jspg::new(&database.0);
|
||||
let new_arc = Arc::new(new_jspg);
|
||||
|
||||
@ -54,7 +54,7 @@ pub fn jspg_setup(database: Json) -> JsonB {
|
||||
*lock = Some(new_arc);
|
||||
}
|
||||
|
||||
JsonB(serde_json::to_value(drop).unwrap())
|
||||
Json(serde_json::to_value(drop).unwrap())
|
||||
}
|
||||
|
||||
#[cfg_attr(not(test), pg_extern)]
|
||||
@ -74,6 +74,22 @@ pub fn jspg_merge(schema_id: &str, data: JsonB) -> JsonB {
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg_attr(not(test), pg_extern)]
|
||||
pub fn jspg_merge_ordered(schema_id: &str, data: Json) -> Json {
|
||||
let engine_opt = {
|
||||
let lock = GLOBAL_JSPG.read().unwrap();
|
||||
lock.clone()
|
||||
};
|
||||
|
||||
match engine_opt {
|
||||
Some(engine) => {
|
||||
let drop = engine.merger.merge(schema_id, data.0);
|
||||
Json(serde_json::to_value(drop).unwrap())
|
||||
}
|
||||
None => Json(jspg_failure().0),
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg_attr(not(test), pg_extern)]
|
||||
pub fn jspg_query(schema_id: &str, filter: Option<JsonB>) -> JsonB {
|
||||
let engine_opt = {
|
||||
|
||||
@ -226,7 +226,10 @@ fn test_library_api() {
|
||||
);
|
||||
|
||||
// 4. Validate Happy Path
|
||||
let happy_drop = jspg_validate("source_schema", JsonB(json!({"type": "source_schema", "name": "Neo"})));
|
||||
let happy_drop = jspg_validate(
|
||||
"source_schema",
|
||||
JsonB(json!({"type": "source_schema", "name": "Neo"})),
|
||||
);
|
||||
assert_eq!(
|
||||
happy_drop.0,
|
||||
json!({
|
||||
@ -236,7 +239,10 @@ fn test_library_api() {
|
||||
);
|
||||
|
||||
// 5. Validate Unhappy Path
|
||||
let unhappy_drop = jspg_validate("source_schema", JsonB(json!({"type": "source_schema", "wrong": "data"})));
|
||||
let unhappy_drop = jspg_validate(
|
||||
"source_schema",
|
||||
JsonB(json!({"type": "source_schema", "wrong": "data"})),
|
||||
);
|
||||
assert_eq!(
|
||||
unhappy_drop.0,
|
||||
json!({
|
||||
|
||||
Reference in New Issue
Block a user