///|
let legacy_moondata_scheme = "moondata://"
///|
pub fn robot_legacy_moondata_relative_path(uri : String) -> String? {
if uri.has_prefix(legacy_moondata_scheme) &&
uri.length() > legacy_moondata_scheme.length() {
let path = uri[legacy_moondata_scheme.length():uri.length()].to_owned()
if @data_core.data_relative_path_is_safe(path) {
Some(path)
} else {
None
}
} else {
None
}
}
///|
pub fn robot_legacy_moondata_payload_path(uri : String) -> String? {
match robot_legacy_moondata_relative_path(uri) {
Some(path) if path.has_prefix("payloads/robot_data/") => Some(path)
Some(path) => Some("payloads/robot_data/" + path)
None => None
}
}
///|
pub fn robot_legacy_moondata_payload_ref(
ref_id : RobotPayloadRefId,
legacy_uri : String,
role : String,
content_type : String,
byte_count : Int64,
sha256 : String,
) -> RobotPayloadRef? {
match robot_legacy_moondata_payload_path(legacy_uri) {
Some(path) =>
Some(
robot_payload_ref(ref_id, role, path, content_type, byte_count, sha256),
)
None => None
}
}