Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 26 additions & 26 deletions binary/apicli/src/engine.rs
Original file line number Diff line number Diff line change
Expand Up @@ -557,11 +557,11 @@ enum SchemaObject {
/// nothing to merge).
fn schemaify(value: &serde_json::Value) -> Schema {
match value {
&serde_json::Value::Null => Schema::Single(SchemaObject::Null),
&serde_json::Value::Bool(_) => Schema::Single(SchemaObject::Boolean),
&serde_json::Value::Number(_) => Schema::Single(SchemaObject::Number),
&serde_json::Value::String(_) => Schema::Single(SchemaObject::String),
&serde_json::Value::Object(ref obj) => {
serde_json::Value::Null => Schema::Single(SchemaObject::Null),
serde_json::Value::Bool(_) => Schema::Single(SchemaObject::Boolean),
serde_json::Value::Number(_) => Schema::Single(SchemaObject::Number),
serde_json::Value::String(_) => Schema::Single(SchemaObject::String),
serde_json::Value::Object(obj) => {
let mut properties = HashMap::new();

for (key, value) in obj {
Expand All @@ -570,7 +570,7 @@ fn schemaify(value: &serde_json::Value) -> Schema {

Schema::Single(SchemaObject::Object { properties })
}
&serde_json::Value::Array(ref arr) => {
serde_json::Value::Array(arr) => {
let result = arr.iter().map(schemaify).reduce(merge);

if let Some(result) = result {
Expand All @@ -596,9 +596,9 @@ fn merge(left: Schema, right: Schema) -> Schema {
left
} else {
match &left {
&Schema::Single(SchemaObject::Object { ref properties }) => match &right {
&Schema::Single(SchemaObject::Object {
properties: ref right_properties,
Schema::Single(SchemaObject::Object { properties }) => match &right {
Schema::Single(SchemaObject::Object {
properties: right_properties,
}) => {
let mut existing = HashMap::new();

Expand All @@ -620,7 +620,7 @@ fn merge(left: Schema, right: Schema) -> Schema {
properties: existing,
})
}
&Schema::Composite(SchemaComposite { ref one_of }) => {
Schema::Composite(SchemaComposite { one_of }) => {
let mut one_of = one_of.clone();

if !one_of.contains(&left) {
Expand All @@ -629,17 +629,17 @@ fn merge(left: Schema, right: Schema) -> Schema {

Schema::Composite(SchemaComposite { one_of })
}
&Schema::Single(_) => Schema::Composite(SchemaComposite {
Schema::Single(_) => Schema::Composite(SchemaComposite {
one_of: vec![left, right],
}),
},
&Schema::Single(SchemaObject::Array { ref items }) => match &right {
&Schema::Single(SchemaObject::Array {
items: ref right_items,
}) => Schema::Single(SchemaObject::Array {
items: Box::new(merge((**items).clone(), (**right_items).clone())),
}),
&Schema::Composite(SchemaComposite { ref one_of }) => {
Schema::Single(SchemaObject::Array { items }) => match &right {
Schema::Single(SchemaObject::Array { items: right_items }) => {
Schema::Single(SchemaObject::Array {
items: Box::new(merge((**items).clone(), (**right_items).clone())),
})
}
Schema::Composite(SchemaComposite { one_of }) => {
let mut one_of = one_of.clone();

if !one_of.contains(&left) {
Expand All @@ -648,21 +648,21 @@ fn merge(left: Schema, right: Schema) -> Schema {

Schema::Composite(SchemaComposite { one_of })
}
&Schema::Single(_) => Schema::Composite(SchemaComposite {
Schema::Single(_) => Schema::Composite(SchemaComposite {
one_of: vec![left, right],
}),
},
&Schema::Composite(SchemaComposite { ref one_of }) => match &right {
&Schema::Single(_) => {
Schema::Composite(SchemaComposite { one_of }) => match &right {
Schema::Single(_) => {
let mut one_of = one_of.clone();
if !one_of.contains(&right) {
one_of.push(right);
}

Schema::Composite(SchemaComposite { one_of })
}
&Schema::Composite(SchemaComposite {
one_of: ref right_one_of,
Schema::Composite(SchemaComposite {
one_of: right_one_of,
}) => {
let mut one_of = one_of.clone();
for right_value in right_one_of {
Expand All @@ -674,11 +674,11 @@ fn merge(left: Schema, right: Schema) -> Schema {
Schema::Composite(SchemaComposite { one_of })
}
},
&Schema::Single(_) => match &right {
&Schema::Single(_) => Schema::Composite(SchemaComposite {
Schema::Single(_) => match &right {
Schema::Single(_) => Schema::Composite(SchemaComposite {
one_of: vec![left, right],
}),
&Schema::Composite(SchemaComposite { ref one_of }) => {
Schema::Composite(SchemaComposite { one_of }) => {
let mut one_of = one_of.clone();
if !one_of.contains(&left) {
one_of.push(left.clone());
Expand Down
30 changes: 15 additions & 15 deletions binary/apicli/src/path.rs
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ pub fn get_input_paths(
let mut input_paths = Vec::new();

match manifest {
&Some(core_entities::service::service_manifest_latest::Value::Swagger(_)) => {
Some(core_entities::service::service_manifest_latest::Value::Swagger(_)) => {
let operation = service
.commonApi
.operations
Expand Down Expand Up @@ -74,7 +74,7 @@ pub fn get_input_paths(
}
}
}
&Some(core_entities::service::service_manifest_latest::Value::Action(ref manifest)) => {
Some(core_entities::service::service_manifest_latest::Value::Action(manifest)) => {
let operation = manifest
.operations
.iter()
Expand All @@ -94,13 +94,13 @@ pub fn get_input_paths(
);
}
}
&Some(core_entities::service::service_manifest_latest::Value::ApiWrapped(_)) => {
Some(core_entities::service::service_manifest_latest::Value::ApiWrapped(_)) => {
bail!("Unimplemented manifest type: ApiWrapped")
}
&Some(core_entities::service::service_manifest_latest::Value::SimpleCode(_)) => {
Some(core_entities::service::service_manifest_latest::Value::SimpleCode(_)) => {
bail!("Unimplemented manifest type: SimpleCode")
}
&Some(core_entities::service::service_manifest_latest::Value::ScriptedAction(_)) => {
Some(core_entities::service::service_manifest_latest::Value::ScriptedAction(_)) => {
bail!("Unimplemented manifest type: ScriptedAction")
}
_ => bail!("Unknown manifest type"),
Expand All @@ -125,7 +125,7 @@ pub fn get_output_paths(
let mut output_paths = Vec::new();

match manifest {
&Some(core_entities::service::service_manifest_latest::Value::Swagger(_)) => {
Some(core_entities::service::service_manifest_latest::Value::Swagger(_)) => {
let operation = service
.commonApi
.operations
Expand Down Expand Up @@ -164,7 +164,7 @@ pub fn get_output_paths(
}
}
}
&Some(core_entities::service::service_manifest_latest::Value::Action(ref manifest)) => {
Some(core_entities::service::service_manifest_latest::Value::Action(manifest)) => {
let operation = manifest
.operations
.iter()
Expand All @@ -181,13 +181,13 @@ pub fn get_output_paths(
);
}
}
&Some(core_entities::service::service_manifest_latest::Value::ApiWrapped(_)) => {
Some(core_entities::service::service_manifest_latest::Value::ApiWrapped(_)) => {
bail!("Unimplemented manifest type: ApiWrapped")
}
&Some(core_entities::service::service_manifest_latest::Value::SimpleCode(_)) => {
Some(core_entities::service::service_manifest_latest::Value::SimpleCode(_)) => {
bail!("Unimplemented manifest type: SimpleCode")
}
&Some(core_entities::service::service_manifest_latest::Value::ScriptedAction(_)) => {
Some(core_entities::service::service_manifest_latest::Value::ScriptedAction(_)) => {
bail!("Unimplemented manifest type: ScriptedAction")
}
_ => bail!("Unknown manifest type"),
Expand Down Expand Up @@ -312,7 +312,7 @@ pub fn populate_schema_list(
prefix: &mut Vec<String>,
) {
match schema {
&Some(core_entities::service::schema::Value::Ref(ref reference)) => {
Some(core_entities::service::schema::Value::Ref(reference)) => {
let schema = types.get(reference).cloned().and_then(|s| s.value);

if seen.contains_key(reference) {
Expand All @@ -335,22 +335,22 @@ pub fn populate_schema_list(
populate_schema_list(list, &schema, types, seen, path, is_required, prefix);
seen.remove(reference);
}
&Some(core_entities::service::schema::Value::SchemaObject(ref schema)) => {
Some(core_entities::service::schema::Value::SchemaObject(schema)) => {
populate_schema_object_list(list, schema, types, seen, path, is_required, prefix);
}
&Some(core_entities::service::schema::Value::AllOf(ref all_of)) => {
Some(core_entities::service::schema::Value::AllOf(all_of)) => {
for schema in &all_of.schema {
populate_schema_list(list, &schema.value, types, seen, path, is_required, prefix);
}
}
&Some(core_entities::service::schema::Value::OneOf(ref one_of)) => {
Some(core_entities::service::schema::Value::OneOf(one_of)) => {
for (idx, schema) in one_of.schema.iter().enumerate() {
prefix.push(format!("one:{idx}"));
populate_schema_list(list, &schema.value, types, seen, path, is_required, prefix);
prefix.pop();
}
}
&Some(core_entities::service::schema::Value::AnyOf(ref any_of)) => {
Some(core_entities::service::schema::Value::AnyOf(any_of)) => {
for (idx, schema) in any_of.schema.iter().enumerate() {
prefix.push(format!("any:{idx}"));
populate_schema_list(list, &schema.value, types, seen, path, is_required, prefix);
Expand Down
24 changes: 12 additions & 12 deletions binary/apicli/src/stub.rs
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ pub fn get_input(
let mut input_example = serde_json::Map::new();

match manifest {
&Some(core_entities::service::service_manifest_latest::Value::Swagger(_)) => {
Some(core_entities::service::service_manifest_latest::Value::Swagger(_)) => {
let operation = service
.commonApi
.operations
Expand Down Expand Up @@ -69,7 +69,7 @@ pub fn get_input(
}
}
}
&Some(core_entities::service::service_manifest_latest::Value::Action(ref manifest)) => {
Some(core_entities::service::service_manifest_latest::Value::Action(manifest)) => {
let operation = manifest
.operations
.iter()
Expand All @@ -85,16 +85,16 @@ pub fn get_input(
input_example.insert(param.name.clone(), default_value);
}
}
&Some(core_entities::service::service_manifest_latest::Value::ApiWrapped(ref manifest)) => {
Some(core_entities::service::service_manifest_latest::Value::ApiWrapped(manifest)) => {
for param in &manifest.inputs {
let default_value = parameter_to_value(param.param.type_);
input_example.insert(param.param.name.clone(), default_value);
}
}
&Some(core_entities::service::service_manifest_latest::Value::SimpleCode(_)) => {
Some(core_entities::service::service_manifest_latest::Value::SimpleCode(_)) => {
bail!("Unimplemented manifest type: SimpleCode")
}
&Some(core_entities::service::service_manifest_latest::Value::ScriptedAction(_)) => {
Some(core_entities::service::service_manifest_latest::Value::ScriptedAction(_)) => {
bail!("Unimplemented manifest type: ScriptedAction")
}
_ => bail!("Unknown manifest type"),
Expand All @@ -118,7 +118,7 @@ pub fn get_output(
let manifest = &service.manifest.v2().value;

match manifest {
&Some(core_entities::service::service_manifest_latest::Value::Swagger(_)) => {
Some(core_entities::service::service_manifest_latest::Value::Swagger(_)) => {
let operation = service
.commonApi
.operations
Expand Down Expand Up @@ -160,7 +160,7 @@ pub fn get_output(
Ok(serde_json::Value::Object(serde_json::Map::new()))
}
}
&Some(core_entities::service::service_manifest_latest::Value::Action(ref manifest)) => {
Some(core_entities::service::service_manifest_latest::Value::Action(manifest)) => {
let operation = manifest
.operations
.iter()
Expand All @@ -176,7 +176,7 @@ pub fn get_output(

Ok(serde_json::Value::Object(output_examples))
}
&Some(core_entities::service::service_manifest_latest::Value::ApiWrapped(ref manifest)) => {
Some(core_entities::service::service_manifest_latest::Value::ApiWrapped(manifest)) => {
let mut output_examples = serde_json::Map::new();
for param in &manifest.outputSelectors {
// TODO: use JMES path to determine type
Expand All @@ -186,10 +186,10 @@ pub fn get_output(

Ok(serde_json::Value::Object(output_examples))
}
&Some(core_entities::service::service_manifest_latest::Value::SimpleCode(_)) => {
Some(core_entities::service::service_manifest_latest::Value::SimpleCode(_)) => {
bail!("Unimplemented manifest type: SimpleCode")
}
&Some(core_entities::service::service_manifest_latest::Value::ScriptedAction(_)) => {
Some(core_entities::service::service_manifest_latest::Value::ScriptedAction(_)) => {
bail!("Unimplemented manifest type: ScriptedAction")
}
_ => bail!("Unknown manifest type"),
Expand Down Expand Up @@ -237,7 +237,7 @@ pub fn schema_to_value(
required: bool,
) -> serde_json::Value {
match schema {
&Some(core_entities::service::schema::Value::Ref(ref reference)) => {
Some(core_entities::service::schema::Value::Ref(reference)) => {
let schema = types.get(reference).cloned().and_then(|s| s.value);

if seen.contains_key(reference) {
Expand All @@ -254,7 +254,7 @@ pub fn schema_to_value(
seen.remove(reference);
schema
}
&Some(core_entities::service::schema::Value::SchemaObject(ref schema)) => {
Some(core_entities::service::schema::Value::SchemaObject(schema)) => {
schema_object_to_value(schema, types, seen, path, required)
}
_ => serde_json::Value::Object(serde_json::Map::new()),
Expand Down
Loading
Loading