// Read handles GET func (ctl *AttributeController) Read(c *models.Context) { _, itemTypeID, itemID, status, err := c.GetItemTypeAndItemID() if err != nil { c.RespondWithErrorDetail(err, status) return } perms := models.GetPermission(models.MakeAuthorisationContext(c, 0, itemTypeID, itemID)) if !perms.CanRead { c.RespondWithErrorMessage(h.NoAuthMessage, http.StatusForbidden) return } attributeID, status, err := models.GetAttributeID(itemTypeID, itemID, c.RouteVars["key"]) if err != nil { c.RespondWithErrorDetail(err, status) return } m, status, err := models.GetAttribute(attributeID) if err != nil { c.RespondWithErrorDetail(err, status) return } c.RespondWithData(m) }
// Delete handles DELETE func (ctl *AttributeController) Delete(c *models.Context) { _, itemTypeID, itemID, status, err := c.GetItemTypeAndItemID() if err != nil { c.RespondWithErrorDetail(err, status) return } key := c.RouteVars["key"] m := models.AttributeType{} m.Key = key attributeID, status, err := models.GetAttributeID(itemTypeID, itemID, m.Key) if err != nil { c.RespondWithErrorDetail(err, status) return } m.ID = attributeID status, err = m.Delete() if err != nil { c.RespondWithErrorDetail(err, status) return } audit.Delete( c.Site.ID, h.ItemTypes[h.ItemTypeAttribute], m.ID, c.Auth.ProfileID, time.Now(), c.IP, ) c.RespondWithOK() }