Пример #1
0
        public async Task <IActionResult> postJson([FromBody] InstallationRoot payload, [FromQuery] string repo = "scdfiles")
        {
            try
            {
                // create installation with a 10% chance of failing
                InstallationSim instSim = simHandler.createFailedInstallationByChance(payload, 10);
                StatusType      status  = await instSim.runSetup();

                if (status == StatusType.STATUS_FINISHED_SUCCESS)
                {
                    var jsonString = JsonConvert.SerializeObject(payload, Formatting.Indented);
                    await GitController.createFile("Create: " + payload.installation.name, jsonString, "./installations/" + payload.installation.name + "/" + payload.installation.name + ".json", repo);

                    return(Ok("{\"status\": 200, \"message\": \"Success.\", \"installation_status\": \"" + status + "\"}"));
                }
                else
                {
                    return(BadRequest("{\"status\": 400, \"message\": \"Creation of installation failed.\", \"installation_status\": \"" + StatusType.STATUS_FINISHED_FAILED + "\"}"));
                }
            }
            catch (ApiValidationException)
            {
                return(BadRequest("{\"status\": 400, \"message\": \"File already exists in github repo.\", \"installation_status\": \"" + StatusType.STATUS_FINISHED_FAILED + "\"}"));
            }
            catch (Exception)
            {
                return(BadRequest("{\"status\": 400, \"message\": \"Unknown error.\", \"installation_status\": \"" + StatusType.STATUS_FINISHED_FAILED + "\"}"));
            }
        }
Пример #2
0
        public async Task <IActionResult> getJson([FromQuery] string instName, [FromQuery] string repo = "scdfiles")
        {
            string path = "./installations/" + instName + "/" + instName + ".json";

            try
            {
                var content = await GitController.getFile(path, repo);

                var res = content.ElementAt <RepositoryContent>(0);

                return(Ok(res.Content));
            }
            catch (Exception)
            {
                return(BadRequest("Error getting file."));
            }
        }
Пример #3
0
        public async Task <IActionResult> getState([FromQuery] string name, [FromQuery] string repo = "scdfiles")
        {
            string path = "installations/" + name + "/" + name + ".json";

            try
            {
                var content = await GitController.getFile(path, repo);

                var res = content.ElementAt <RepositoryContent>(0);

                InstallationRoot installation = JsonConvert.DeserializeObject <InstallationRoot>(res.Content);

                string state = installation.installation.state;

                return(Ok(state));
            }
            catch (Exception)
            {
                return(BadRequest("Error getting state."));
            }
        }
Пример #4
0
        public async Task <IActionResult> copyJson([FromBody] CopyData data, [FromQuery] string repo = "scdfiles")
        {
            try
            {
                IActionResult actionResult = await getJson(data.oldName, repo);

                var content = actionResult as OkObjectResult;

                string jsonString = content.Value.ToString();
                jsonString = jsonString.Replace(data.oldName, data.newName);

                InstallationRoot newInstallation = JsonConvert.DeserializeObject <InstallationRoot>(jsonString);
                // create installation with a 10% chance of failing
                InstallationSim sim = simHandler.createFailedInstallationByChance(newInstallation, 10);
                await sim.runSetup();

                if (sim.status == StatusType.STATUS_FINISHED_SUCCESS)
                {
                    await GitController.CopyFile(data.newName, data.oldName, repo, jsonString);
                }
                else
                {
                    return(BadRequest("{\"status\": 400, \"message\": \"Failed to create file.\", \"installation_status\": \"" + sim.status + "\"}"));
                }
            }
            catch (NullReferenceException)
            {
                return(BadRequest("{\"status\": 400, \"message\": \"Could not find file with the given filename.\"}"));
            }
            catch (ApiValidationException)
            {
                return(BadRequest("{\"status\": 400, \"message\": \"File already exists in github repo.\"}"));
            }
            catch (Exception)
            {
                return(BadRequest("{\"status\": 400, \"message\": \"Unknown error.\"}"));
            }

            return(Ok("{\"status\": 200, \"message\": \"Success.\", \"installation_status\": \"" + StatusType.STATUS_FINISHED_SUCCESS + "\"}"));
        }