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))
 | 
					    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 {
 | 
					pub fn router() -> Router {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    let route3 = Router::new()
 | 
					    let route4 = Router::new()
 | 
				
			||||||
        .get(ApiMethod {
 | 
					        .get(ApiMethod {
 | 
				
			||||||
            parameters: ObjectSchema::new("Another Endpoint."),
 | 
					            parameters: ObjectSchema::new("Another Endpoint."),
 | 
				
			||||||
            returns: Schema::Null,
 | 
					            returns: Schema::Null,
 | 
				
			||||||
@ -38,21 +47,42 @@ pub fn router() -> Router {
 | 
				
			|||||||
           },
 | 
					           },
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    let route2 = Router::new()
 | 
					
 | 
				
			||||||
 | 
					    let nodeinfo = Router::new()
 | 
				
			||||||
        .get(ApiMethod {
 | 
					        .get(ApiMethod {
 | 
				
			||||||
            handler: test_sync_api_handler,
 | 
					            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")),
 | 
					                .optional("force", BooleanSchema::new("Test for boolean options")),
 | 
				
			||||||
            returns: Schema::Null,
 | 
					            returns: Schema::Null,
 | 
				
			||||||
        })
 | 
					        })
 | 
				
			||||||
        .subdirs({
 | 
					        .subdirs({
 | 
				
			||||||
            let mut map = HashMap::new();
 | 
					            let mut map = HashMap::new();
 | 
				
			||||||
            map.insert("subdir3".into(), route3);
 | 
					            map.insert("subdir3".into(), route4);
 | 
				
			||||||
            map
 | 
					            map
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    let route = Router::new()
 | 
					    let nodes = Router::new()
 | 
				
			||||||
        .match_all("node", route2);
 | 
					        .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
 | 
					    route
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user