public ActionResult <NavLinkDto> PostNavLinkMethod(NewNavLinkDto new_link, int admin_id, string admin_token, int site_id) { if (authenticator.VerifyAdminForLeaf(admin_id, site_id, admin_token)) { DataPlan data_plan; try{ data_plan = _dataLimiter.ValidateNavLinkAdditionForDataPlan(admin_id, new_link); }catch (System.ArgumentException e) { return(StatusCode(400, e.Message)); } NavLinkDto added_link = dbQuery.AddNavBarLinkToSite(new_link, site_id); _dataLimiter.UpdateDataPlan(data_plan); return(added_link); } else { return(StatusCode(400, "Invalid Token. Stranger Danger.")); } }
public DataPlan ValidateNavLinkAdditionForDataPlan(int admin_id, NewNavLinkDto new_nav_link) //Nav Links are not a SiteComponent { NavLink nav_link = new NavLink(); nav_link.label = new_nav_link.label; nav_link.url = new_nav_link.url; DataPlan data_plan = _dbQuery.GetDataPlanByAdminId(admin_id); data_plan.total_bytes += nav_link.FindCharLength(); if (data_plan.total_bytes <= data_plan.max_bytes) { return(data_plan); } else { throw new System.ArgumentException($"New {nav_link.GetType().Name.ToString()} exceeds data plan limits. Reduce data use by deleting sites and or components."); } }
public ActionResult <NavLinkDto> PostNavLink([FromBody] NewNavLinkDto new_link, int admin_id, string admin_token, int site_id) { return(methods.PostNavLinkMethod(new_link, admin_id, admin_token, site_id)); }