~netlandish/links

1b983bf98cdea25427a1bc67f867df63868bd6b7 — Peter Sanchez a month ago e2ea3b3
Fixing a few bugs with tests
M api/graph/schema.resolvers.go => api/graph/schema.resolvers.go +16 -10
@@ 5612,7 5612,7 @@ func (r *queryResolver) GetListing(ctx context.Context, input *model.GetListingD
	validator := valid.New(ctx)
	opts := &database.FilterOptions{
		Filter: sq.And{
			sq.Eq{"l.domainID": input.DomainID},
			sq.Eq{"l.domain_id": input.DomainID},
			sq.Eq{"d.service": models.DomainServiceList},
			sq.Eq{"l.is_active": true},
		},


@@ 5620,20 5620,26 @@ func (r *queryResolver) GetListing(ctx context.Context, input *model.GetListingD
	}
	if input.Slug != nil {
		// Check for user in list management
		opts.Filter = sq.Or{
			sq.Eq{"l.slug": *input.Slug}, // Based on list slug
			sq.And{
				// Based on org slug: get default only if we are using sys domain
				sq.Eq{"o.slug": *input.Slug},
				sq.Eq{"d.level": models.DomainLevelSystem},
				sq.Eq{"l.is_default": true},
		opts.Filter = sq.And{
			opts.Filter,
			sq.Or{
				sq.Eq{"l.slug": *input.Slug}, // Based on list slug
				sq.And{
					// Based on org slug: get default only if we are using sys domain
					sq.Eq{"o.slug": *input.Slug},
					sq.Eq{"d.level": models.DomainLevelSystem},
					sq.Eq{"l.is_default": true},
				},
			},
		}
	} else {
		// Based on user domain
		opts.Filter = sq.And{
			sq.Eq{"l.is_default": true},
			sq.Eq{"d.level": models.DomainLevelUser},
			opts.Filter,
			sq.And{
				sq.Eq{"l.is_default": true},
				sq.Eq{"d.level": models.DomainLevelUser},
			},
		}
	}
	listings, err := models.GetListings(ctx, opts)

M core/routes_test.go => core/routes_test.go +1 -1
@@ 63,7 63,7 @@ func TestHandlers(t *testing.T) {
		err = test.MakeRequest(srv, coreService.InvalidDomain, ctx)
		c.NoError(err)
		htmlBody := recorder.Body.String()
		c.True(strings.Contains(htmlBody, "Invalid Domain"))
		c.True(strings.Contains(htmlBody, "Inactive Domain"))

	})


M migrations/0001_initial.down.sql => migrations/0001_initial.down.sql +1 -0
@@ 28,5 28,6 @@ DROP TABLE IF EXISTS invoices;
DROP TABLE IF EXISTS subscriptions;
DROP TABLE IF EXISTS subscription_plans;
DROP TABLE IF EXISTS domains;
DROP TABLE IF EXISTS followers;
DROP TABLE IF EXISTS organizations;
DROP TABLE IF EXISTS users;

M migrations/0001_initial.up.sql => migrations/0001_initial.up.sql +1 -1
@@ 496,7 496,7 @@ CREATE TABLE followers (
  org_id INT REFERENCES organizations (id) ON DELETE CASCADE NOT NULL,
  created_on TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP,
  CONSTRAINT unique_followers UNIQUE (user_id, org_id)
)
);

CREATE INDEX followers_id_idx ON followers (id);
CREATE INDEX followers_user_id_idx ON followers (user_id);

M templates/listing_link_list.html => templates/listing_link_list.html +1 -1
@@ 1,7 1,7 @@
{{template "base" .}}
{{ define "title" }}{{ .pd.Title }}{{ end }}
<section class="app-header">
  <h1 class="app-header__title">{{.listing.Title}} {{.pd.Title}}</h1>
  <h1 class="app-header__title">{{.pd.Title}}</h1>
  <div>
    <a class="button primary is-small" href="{{reverse "list:listing_list" .org.Slug}}">{{.pd.Data.back}}</a>
    <a class="button primary is-small" href="{{reverse "list:listing_link_create" .org.Slug .listing.ID}}">{{.pd.Data.add}}</a>