public ActionResult <JsonResponse> PostMethod(NewSiteDto NewSite) { if (authenticator.VerifyAdmin(NewSite.admin_id, NewSite.token)) { string verdict = validator.ValidateSiteUrl(NewSite.url); if (verdict == "pass") { DataPlan data_plan; try{ data_plan = _dataLimiter.ValidateSiteAdditionForDataPlan(NewSite.admin_id); }catch (System.ArgumentException e) { return(StatusCode(400, e.Message)); } Site SoonToAddSite = new Site(); SoonToAddSite.title = NewSite.title; SoonToAddSite.admin_id = NewSite.admin_id; SoonToAddSite.url = NewSite.url.ToLower(); List <string> format_errors = authenticator.ValidateIncomingSite(SoonToAddSite); if (format_errors.Count != 0) { return(StatusCode(400, format_errors[0])); } dbQuery.AddSite(SoonToAddSite); _dataLimiter.UpdateDataPlan(data_plan); JsonResponse r = new JsonSuccess($"Site created with title: ${NewSite.title}"); return(r); } else { JsonFailure f = new JsonFailure(verdict); return(StatusCode(400, f)); } } else { return(StatusCode(400, "Invalid Token. Stranger Danger.")); } }