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."));
     }
 }
Beispiel #2
0
        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.");
            }
        }
Beispiel #3
0
 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));
 }