public ActionResult <Image> EditImageMethod(Image image, int admin_id, string admin_token, int site_id) { //check available (better way to do this?); Image queried_image; try{ queried_image = dbQuery.QueryImageById(image.image_id); }catch { JsonFailure f = new JsonFailure($"Image Id: {image.image_id} not found."); return(StatusCode(400, f)); } //verify and change if (authenticator.VerifyAdminForLeaf(admin_id, queried_image.site_id, admin_token)) { DataPlan data_plan; try{ data_plan = _dataLimiter.ValidateDataPlanB(admin_id, queried_image, image); }catch (System.ArgumentException e) { return(StatusCode(400, e.Message)); } Image changed_image = dbQuery.EditImage(image); _dataLimiter.UpdateDataPlan(data_plan); return(changed_image); } else { return(StatusCode(400, "Invalid credentials.")); } }
public ActionResult <Portrait> EditPortraitMethod(Portrait portrait, int admin_id, string admin_token, int site_id) { Portrait queried_portrait; try{ queried_portrait = dbQuery.QueryPortraitById(portrait.portrait_id); }catch { JsonFailure f = new JsonFailure($"Portrait Id: {portrait.portrait_id} not found."); return(StatusCode(400, f)); } if (authenticator.VerifyAdminForLeaf(admin_id, queried_portrait.site_id, admin_token)) { DataPlan data_plan; try{ data_plan = _dataLimiter.ValidateDataPlanB(admin_id, queried_portrait, portrait); }catch (System.ArgumentException e) { return(StatusCode(400, e.Message)); } Portrait changed_portrait = dbQuery.EditPortrait(portrait); _dataLimiter.UpdateDataPlan(data_plan); return(changed_portrait); } else { return(StatusCode(400, "Invalid credentials.")); } }
//Component Edit Methods public ActionResult <ParagraphBox> EditParagraphBoxMethod(ParagraphBox paragraph_box, int admin_id, string admin_token, int site_id) { //check available (better way to do this?) ParagraphBox queried_paragraph_box; try{ queried_paragraph_box = dbQuery.QueryParagraphBoxById(paragraph_box.paragraph_box_id); }catch { JsonFailure f = new JsonFailure($"paragraph_box Id: {paragraph_box.paragraph_box_id} not found."); return(StatusCode(400, f)); } //verify and change if (authenticator.VerifyAdminForLeaf(admin_id, queried_paragraph_box.site_id, admin_token)) { DataPlan data_plan; try{ data_plan = _dataLimiter.ValidateDataPlanB(admin_id, queried_paragraph_box, paragraph_box); }catch (System.ArgumentException e) { return(StatusCode(400, e.Message)); } ParagraphBox changed_tcb = dbQuery.EditParagraphBox(paragraph_box); _dataLimiter.UpdateDataPlan(data_plan); return(paragraph_box); } else { return(StatusCode(400, "Invalid credentials.")); } }
public ActionResult <TwoColumnBox> EditTwoColumnBoxMethod(TwoColumnBox tc_box, int admin_id, string admin_token, int site_id) { //check available (better way to do this?) TwoColumnBox queried_tc_box; try{ queried_tc_box = dbQuery.QueryTwoColumnBoxById(tc_box.two_column_box_id); }catch { JsonFailure f = new JsonFailure($"Two Column Box Id: {tc_box.two_column_box_id} not found."); return(StatusCode(400, f)); } if (authenticator.VerifyAdminForLeaf(admin_id, queried_tc_box.site_id, admin_token)) { DataPlan data_plan; try{ data_plan = _dataLimiter.ValidateDataPlanB(admin_id, queried_tc_box, tc_box); }catch (System.ArgumentException e) { return(StatusCode(400, e.Message)); } TwoColumnBox changed_tcb = dbQuery.EditTwoColumnBox(tc_box); _dataLimiter.UpdateDataPlan(data_plan); return(changed_tcb); } else { return(StatusCode(400, "Invalid credentials.")); } }
public ActionResult <JsonResponse> DeleteNavLinkMethod(int admin_id, string admin_token, int site_id, int link_id) { if (authenticator.VerifyAdminForLeaf(admin_id, site_id, admin_token)) { List <NavLink> found_nav_links; try{ found_nav_links = dbQuery.QueryNavBarLinksBySiteId(site_id); }catch { return(StatusCode(400, $"Link ID {link_id} not found on site id {site_id}'s Nav Bar")); } NavLink found_link = null; foreach (NavLink link in found_nav_links) { if (link.link_id == link_id) { found_link = link; } } if (found_link == null) { return(StatusCode(400, $"Link ID {link_id} not found on site id {site_id}'s Nav Bar")); } _dataLimiter.RemoveNavLinkFromDataPlan(found_link, admin_id); dbQuery.DeleteNavLinkById(link_id); return(new JsonSuccess($"NavLink Deleted for link id: {link_id}")); } else { JsonFailure f = new JsonFailure("Invalid credentials."); return(StatusCode(400, f)); } }
public ActionResult <ViewSession> genUserSessionMethod(ViewSession NewSession) { bool verdict = false; try{ //load object verdict = (NewSession.token == "duaiosfbol"); NewSession.session_id = 0; NewSession.url = _urlFormatter.StripDomainFromUrl(NewSession.url); NewSession.token = _gen.GenerateToken(); NewSession.site_id = _dbQuery.querySiteIdForUrl(NewSession.url); }catch { //invalid object JsonFailure f = new JsonFailure($"Unable to parse object. See documentation."); return(StatusCode(400, f)); } if (verdict == true) { return(_dbQuery.addSession(NewSession)); } else //authentication fail { JsonFailure f = new JsonFailure($"Unauthorised use. See documentation."); return(StatusCode(400, f)); } }
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.")); } }
public ActionResult <JsonResponse> UpdateSessionMethod(ViewSession CurrentSession) { ViewSession QueriedSession; System.Console.WriteLine($"Current session ID: {CurrentSession.session_id}"); try{ QueriedSession = _dbQuery.querySessionById(CurrentSession.session_id); }catch (ArgumentException e) { JsonFailure f = new JsonFailure(e.Message); return(StatusCode(400, f)); } if (QueriedSession.token == CurrentSession.token) { _dbQuery.updateSession(CurrentSession); return(new JsonSuccess("Session Updated.")); } else //auth fail { JsonFailure f = new JsonFailure($"Invalid token for session ID: {CurrentSession.session_id}."); return(StatusCode(400, f)); } }
public ActionResult <JsonResponse> DeleteAuthenticatedSiteComponentMethod(ComponentReference Component) { if (Component.component_type == "p_box") { try{ ParagraphBox paragraph_box = dbQuery.DeleteParagraphBox(Component.component_id); Site parent_site = dbQuery.QueryFeaturelessSiteById(paragraph_box.site_id); _dataLimiter.RemoveFromDataPlan(paragraph_box, parent_site.admin_id); JsonResponse r = new JsonSuccess("Paragraph box deleted sucessfully!"); return(r); }catch { JsonFailure f = new JsonFailure($"Unable to find paragraph box id {Component.component_id}"); return(StatusCode(400, f)); } } else if (Component.component_type == "image") { try{ Image image = dbQuery.DeleteImage(Component.component_id); Site parent_site = dbQuery.QueryFeaturelessSiteById(image.site_id); _dataLimiter.RemoveFromDataPlan(image, parent_site.admin_id); JsonResponse r = new JsonSuccess("Image deleted sucessfully!"); return(r); }catch { JsonFailure f = new JsonFailure($"Unable to find image id {Component.component_id}"); return(StatusCode(400, f)); } } else if (Component.component_type == "portrait") { try{ Portrait portrait = dbQuery.DeletePortrait(Component.component_id); Site parent_site = dbQuery.QueryFeaturelessSiteById(portrait.site_id); _dataLimiter.RemoveFromDataPlan(portrait, parent_site.admin_id); JsonResponse r = new JsonSuccess("Portrait component deleted sucessfully!"); return(r); }catch { JsonFailure f = new JsonFailure($"Unable to find portrait id {Component.component_id}"); return(StatusCode(400, f)); } } else if (Component.component_type == "2c_box") { try{ TwoColumnBox two_column_box = dbQuery.DeleteTwoColumnBox(Component.component_id); Site parent_site = dbQuery.QueryFeaturelessSiteById(two_column_box.site_id); _dataLimiter.RemoveFromDataPlan(two_column_box, parent_site.admin_id); JsonResponse r = new JsonSuccess("Two Column Box component deleted sucessfully!"); return(r); }catch { JsonFailure f = new JsonFailure($"Unable to find two column box id {Component.component_id}"); return(StatusCode(400, f)); } } else if (Component.component_type == "link_box") { try{ LinkBox link_box = dbQuery.DeleteLinkBox(Component.component_id); Site parent_site = dbQuery.QueryFeaturelessSiteById(link_box.site_id); _dataLimiter.RemoveFromDataPlan(link_box, parent_site.admin_id); JsonResponse r = new JsonSuccess("Link Box component deleted sucessfully!"); return(r); }catch { JsonFailure f = new JsonFailure($"Unable to find link box id {Component.component_id}"); return(StatusCode(400, f)); } } else { JsonFailure f = new JsonFailure("Type mismatch. Type does not match any known components."); return(StatusCode(400, f)); } }