use serde_json::{json, Value as Json};
use crate::config::{ServerConfig, REPORTED_PARSE_SERVER_VERSION};
pub fn server_info_body(config: &ServerConfig) -> Json {
let f = &config.features;
let features = json!({
"globalConfig": {
"create": f.global_config, "read": f.global_config,
"update": f.global_config, "delete": f.global_config,
},
"hooks": {
"create": f.hooks, "read": f.hooks, "update": f.hooks, "delete": f.hooks,
},
"cloudCode": { "jobs": f.cloud_code_jobs },
"logs": {
"level": f.logs, "size": f.logs, "order": f.logs, "until": f.logs, "from": f.logs,
},
"push": {
"immediatePush": config.has_push_support,
"scheduledPush": config.has_push_scheduled_support,
"storedPushData": config.has_push_support,
"pushAudiences": f.push_audiences,
"localization": f.push_audiences,
},
"schemas": {
"addField": f.schemas,
"removeField": f.schemas,
"addClass": f.schemas,
"removeClass": f.schemas,
"clearAllDataFromClass": f.schemas,
"exportClass": false,
"editClassLevelPermissions": f.schemas,
"editPointerPermissions": f.schemas,
},
"settings": { "securityCheck": config.security_check_enabled },
});
json!({
"features": features,
"parseServerVersion": REPORTED_PARSE_SERVER_VERSION,
})
}