use actix_web::Scope;
use actix_web::{http::Method, web};
use crate::controllers;
pub mod chunks;
pub fn versions() -> Scope {
web::scope("/versions")
.route(
"",
web::get().to(controllers::entries::download_data_from_version_paths),
)
.route("", web::post().to(controllers::versions::batch_upload))
.route(
"",
web::method(Method::from_bytes(b"QUERY").unwrap())
.to(controllers::versions::batch_download),
)
.route("", web::delete().to(controllers::versions::clean))
.route(
"/{version_id}/metadata",
web::get().to(controllers::versions::metadata),
)
.route(
"/{version_id}/chunks",
web::put().to(controllers::versions::chunks::upload),
)
.service(
web::resource("/{version_id}/complete")
.app_data(web::PayloadConfig::default().limit(20 * 1024 * 1024))
.route(web::post().to(controllers::versions::chunks::complete)),
)
.route(
"/{resource:.*}",
web::get().to(controllers::versions::download),
)
.route(
"/{version_id}/chunks/download",
web::get().to(controllers::versions::chunks::download),
)
.route(
"/{version_id}/create",
web::post().to(controllers::versions::chunks::create),
)
}