package server import ( "fmt" "net/http" "strings" "github.com/gin-gonic/gin" domain "github.com/haydenhargreaves/Potion/internal/domain/server" ) const TAG_HTML = `
  • × %s
  • ` const TAG_LIST_HTML = ` ` func (s *Server) NewTagHandler(ctx *gin.Context) { tag := strings.ToLower(ctx.PostForm("tag")) tags := strings.Split(ctx.PostForm("tags"), ",") tags = append([]string{tag}, tags...) var html string var cleaned_tags []string for _, tag := range tags { if tag != "" { html += fmt.Sprintf(TAG_HTML, domain.STATE_TAGS_DELETE, tag, tag) // Ensure that the list provided does not contain blank spaces. // This is another measure to ensure this state is bulletproof. cleaned_tags = append(cleaned_tags, tag) } } // Execute OOB swap for the tags html += fmt.Sprintf(TAG_LIST_HTML, strings.Join(cleaned_tags, ",")) ctx.String(http.StatusOK, html) } func (s *Server) DeleteTagHandler(ctx *gin.Context) { tags := strings.Split(ctx.PostForm("tags"), ",") target := ctx.PostForm("target") var html string var new_tags []string for _, tag := range tags { if tag != target && tag != "" { html += fmt.Sprintf(TAG_HTML, domain.STATE_TAGS_DELETE, tag, tag) new_tags = append(new_tags, tag) } } // Execute OOB swap for the tags html += fmt.Sprintf(TAG_LIST_HTML, strings.Join(new_tags, ",")) ctx.String(http.StatusOK, html) }