Add support for reordering sponsor slides.

This commit is contained in:
Patrick Fairbank
2019-09-14 12:24:39 -07:00
parent edd3923fb4
commit 33e5d932de
8 changed files with 117 additions and 15 deletions

View File

@@ -12,6 +12,7 @@ type SponsorSlide struct {
Line2 string
Image string
DisplayTimeSec int
DisplayOrder int
}
func (database *Database) CreateSponsorSlide(sponsorSlide *SponsorSlide) error {
@@ -44,6 +45,12 @@ func (database *Database) TruncateSponsorSlides() error {
func (database *Database) GetAllSponsorSlides() ([]SponsorSlide, error) {
var sponsorSlides []SponsorSlide
err := database.sponsorSlideMap.Select(&sponsorSlides, "SELECT * FROM sponsor_slides ORDER BY id")
err := database.sponsorSlideMap.Select(&sponsorSlides, "SELECT * FROM sponsor_slides ORDER BY displayorder")
return sponsorSlides, err
}
func (database *Database) GetNextSponsorSlideDisplayOrder() int {
var count int
_ = database.sponsorSlideMap.SelectOne(&count, "SELECT MAX(displayorder) + 1 FROM sponsor_slides")
return count
}

View File

@@ -19,11 +19,14 @@ func TestGetNonexistentSponsorSlide(t *testing.T) {
func TestSponsorSlideCrud(t *testing.T) {
db := setupTestDb(t)
sponsorSlide := SponsorSlide{0, "Subtitle", "Line 1", "Line 2", "", 10}
assert.Equal(t, 0, db.GetNextSponsorSlideDisplayOrder())
sponsorSlide := SponsorSlide{0, "Subtitle", "Line 1", "Line 2", "", 10, 0}
db.CreateSponsorSlide(&sponsorSlide)
sponsorSlide2, err := db.GetSponsorSlideById(1)
assert.Nil(t, err)
assert.Equal(t, sponsorSlide, *sponsorSlide2)
assert.Equal(t, 1, db.GetNextSponsorSlideDisplayOrder())
sponsorSlide.Line1 = "Blorpy"
db.SaveSponsorSlide(&sponsorSlide)
@@ -40,10 +43,11 @@ func TestSponsorSlideCrud(t *testing.T) {
func TestTruncateSponsorSlides(t *testing.T) {
db := setupTestDb(t)
sponsorSlide := SponsorSlide{0, "Subtitle", "Line 1", "Line 2", "", 10}
sponsorSlide := SponsorSlide{0, "Subtitle", "Line 1", "Line 2", "", 10, 0}
db.CreateSponsorSlide(&sponsorSlide)
db.TruncateSponsorSlides()
sponsorSlide2, err := db.GetSponsorSlideById(1)
assert.Nil(t, err)
assert.Nil(t, sponsorSlide2)
assert.Equal(t, 0, db.GetNextSponsorSlideDisplayOrder())
}