first open api

This commit is contained in:
stubbfelnewpc
2020-06-25 00:15:44 +02:00
parent 5fe65239c5
commit d7084e0f7f
6 changed files with 1092 additions and 7 deletions

View File

@@ -30,7 +30,6 @@ let
pkgs.rustc
pkgs.rls
pkgs.cargo
pkgs.rustracer
pkgs.clippy
pkgs.rustfmt
pkgs.rustup
@@ -174,7 +173,7 @@ let
'';
in
pkgs.mkShell {
name = "dev-shell";
name = "nixide-shell";
buildInputs = theiaideBuildDependencies ++ projectDependencies ++ [run_ide_script clean_run_ide_script create_service_file] ;
shellHook =
''

1000
Cargo.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,2 +1,2 @@
[workspace]
members = ["control/cli"]
members = ["control/cli", "server/cli"]

14
server/cli/Cargo.toml Normal file
View File

@@ -0,0 +1,14 @@
[package]
name = "nixideserver_cli"
version = "0.1.0"
authors = ["stubbfelnewpc <stubbfelnewpc@stubbe.rocks>"]
edition = "2018"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
rocket = "0.4.5"
rocket_contrib = "0.4.5"
serde = "1.0"
serde_json = "1.0"
serde_derive = "1.0"

69
server/cli/src/main.rs Normal file
View File

@@ -0,0 +1,69 @@
#![feature(proc_macro_hygiene, decl_macro)]
#[macro_use] extern crate rocket;
#[macro_use] extern crate serde_derive;
use rocket::response::status;
use rocket_contrib::json::Json;
// podman create --name test -p 3000:3000 -v $PWD:/nixide -w /nixide docker.io/nixos/nix nix-shell --pure start-ide.nix --run run_ide.sh
#[derive(Serialize)]
pub struct OpenGitParam
{
inquirer: String,
clone_url: String,
ref_name: String
}
#[get("/open/<inquirer>/git?<clone_url>&<ref_name>")]
fn v1_open_inquirer_git(inquirer: String, clone_url: String, ref_name: String) -> status::Accepted<Json<OpenGitParam>> {
let param = OpenGitParam {
inquirer,
clone_url,
ref_name
};
status::Accepted(Some(Json(param)))
}
#[get("/open/<inquirer>/gitea?<clone_url>&<ref_name>")]
fn v1_open_inquirer_gitea(inquirer: String, clone_url: String, ref_name: String) -> status::Accepted<Json<OpenGitParam>> {
let param = OpenGitParam {
inquirer,
clone_url,
ref_name
};
status::Accepted(Some(Json(param)))
}
#[get("/open/<inquirer>/gitlab?<clone_url>&<ref_name>")]
fn v1_open_inquirer_gitlab(inquirer: String, clone_url: String, ref_name: String) -> status::Accepted<Json<OpenGitParam>> {
let param = OpenGitParam {
inquirer,
clone_url,
ref_name
};
status::Accepted(Some(Json(param)))
}
#[get("/open/<inquirer>/github?<clone_url>&<ref_name>")]
fn v1_open_inquirer_github(inquirer: String, clone_url: String, ref_name: String) -> status::Accepted<Json<OpenGitParam>> {
let param = OpenGitParam {
inquirer,
clone_url,
ref_name
};
status::Accepted(Some(Json(param)))
}
#[get("/open/gitlab?<clone_url>&<ref_name>")]
fn v1_open_gitlab(clone_url: String, ref_name: String) -> status::Accepted<Json<OpenGitParam>> {
let param = OpenGitParam {
inquirer : "foo".to_owned(),
clone_url,
ref_name
};
status::Accepted(Some(Json(param)))
}
fn main() {
rocket::ignite().mount("/api/v1/", routes![v1_open_inquirer_git, v1_open_inquirer_gitea, v1_open_gitlab, v1_open_inquirer_github, v1_open_inquirer_gitlab]).launch();
}

11
server/podman/env/podman-shell.nix vendored Normal file
View File

@@ -0,0 +1,11 @@
{
pkgs ? import <nixpkgs> {}
}:
pkgs.mkShell {
name = "podman-shell";
buildInputs = [
pkgs.podmon
];
}