~netlandish/links

536b6d2fce8fd0a38bd9cabda665901bdbaff6d5 — Peter Sanchez a month ago 3c4d9f9
Fixing bug when no valid input is given to the tsquery conversion.

Fixed: ISE when no valid input is given to a query used in tsquery
  conversions.
Signed-off-by: Peter Sanchez <peter@netlandish.com>
3 files changed, 14 insertions(+), 11 deletions(-)

M core/routes.go
M helpers.go
M migrations/0006_update_auditlog_metadata.down.sql
M core/routes.go => core/routes.go +6 -5
@@ 3187,13 3187,14 @@ func (s *Service) TagAutocomplete(c echo.Context) error {
	gctx := c.(*server.Context)
	user := gctx.User.(*models.User)
	orgID := c.QueryParam("org")
	q := c.QueryParam("q")
	var tags []*models.Tag
	var err error
	q := links.ParseSearch(c.QueryParam("q"))
	var (
		tags []*models.Tag
		err  error
	)
	if q != "" {
		s := links.ParseSearch(q)
		opts := &database.FilterOptions{
			Filter: sq.Expr(`to_tsvector('simple', t.name) @@ to_tsquery('simple', ?)`, s),
			Filter: sq.Expr(`to_tsvector('simple', t.name) @@ to_tsquery('simple', ?)`, q),
		}
		if orgID != "" {
			opts.Filter = sq.And{

M helpers.go => helpers.go +7 -5
@@ 864,12 864,14 @@ func ParseSearch(s string) string {
	var words []string
	for _, word := range strings.Split(s, " ") {
		// This is used for to_tsquery searches (tag autocomplete)
		word = strings.TrimSpace(word)
		word = strings.Replace(word, ":", "\\:", -1)
		if !strings.HasPrefix(word, "-") {
			word = word + ":*"
		if len(word) > 0 {
			word = strings.TrimSpace(word)
			word = strings.Replace(word, ":", "\\:", -1)
			if !strings.HasPrefix(word, "-") {
				word = word + ":*"
			}
			words = append(words, word)
		}
		words = append(words, word)
	}
	s = strings.Join(words, " & ")
	return s

M migrations/0006_update_auditlog_metadata.down.sql => migrations/0006_update_auditlog_metadata.down.sql +1 -1
@@ 1,3 1,3 @@
UPDATE audit_log SET metadata = metadata - 'org_slug' WHERE metadata ? 'org_slug';
UPDATE audit_log SET metadata = metadata - 'list_slug' WHERE metadata ? 'list_slug';
DROP INDEX audit_log_metadata_gin;
DROP INDEX IF EXISTS audit_log_metadata_gin;

Do not follow this link