api: add /version
This commit is contained in:
		
							
								
								
									
										42
									
								
								src/api3.rs
									
									
									
									
									
								
							
							
						
						
									
										42
									
								
								src/api3.rs
									
									
									
									
									
								
							@ -24,10 +24,19 @@ fn test_sync_api_handler(param: Value, _info: &ApiMethod) -> Result<Value, Error
 | 
			
		||||
    Ok(json!(null))
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
fn get_version(param: Value, _info: &ApiMethod) -> Result<Value, Error> {
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    Ok(json!({
 | 
			
		||||
        "version": "1.0",
 | 
			
		||||
        "release": "1",
 | 
			
		||||
        "repoid": "AAAA"
 | 
			
		||||
    }))
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
pub fn router() -> Router {
 | 
			
		||||
 | 
			
		||||
    let route3 = Router::new()
 | 
			
		||||
    let route4 = Router::new()
 | 
			
		||||
        .get(ApiMethod {
 | 
			
		||||
            parameters: ObjectSchema::new("Another Endpoint."),
 | 
			
		||||
            returns: Schema::Null,
 | 
			
		||||
@ -38,21 +47,42 @@ pub fn router() -> Router {
 | 
			
		||||
           },
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
    let route2 = Router::new()
 | 
			
		||||
 | 
			
		||||
    let nodeinfo = Router::new()
 | 
			
		||||
        .get(ApiMethod {
 | 
			
		||||
            handler: test_sync_api_handler,
 | 
			
		||||
             parameters: ObjectSchema::new("This is a simple test.")
 | 
			
		||||
            parameters: ObjectSchema::new("This is a simple test.")
 | 
			
		||||
                .optional("force", BooleanSchema::new("Test for boolean options")),
 | 
			
		||||
            returns: Schema::Null,
 | 
			
		||||
        })
 | 
			
		||||
        .subdirs({
 | 
			
		||||
            let mut map = HashMap::new();
 | 
			
		||||
            map.insert("subdir3".into(), route3);
 | 
			
		||||
            map.insert("subdir3".into(), route4);
 | 
			
		||||
            map
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
    let route = Router::new()
 | 
			
		||||
        .match_all("node", route2);
 | 
			
		||||
    let nodes = Router::new()
 | 
			
		||||
        .match_all("node", nodeinfo);
 | 
			
		||||
 | 
			
		||||
    let version = Router::new()
 | 
			
		||||
        .get(ApiMethod {
 | 
			
		||||
            handler: get_version,
 | 
			
		||||
            parameters: ObjectSchema::new("Proxmox Backup Server API version."),
 | 
			
		||||
            returns: Schema::Null,
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
     let route = Router::new()
 | 
			
		||||
        .get(ApiMethod {
 | 
			
		||||
            handler: get_version,
 | 
			
		||||
            parameters: ObjectSchema::new("Directory index."),
 | 
			
		||||
            returns: Schema::Null,
 | 
			
		||||
        })
 | 
			
		||||
        .subdirs({
 | 
			
		||||
            let mut map = HashMap::new();
 | 
			
		||||
            map.insert("version".into(), version);
 | 
			
		||||
            map.insert("nodes".into(), nodes);
 | 
			
		||||
           map
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
    route
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user