Files
cheesy-arena-lite/model/sponsor_slide.go
2022-04-30 15:09:09 -07:00

61 lines
1.5 KiB
Go

// Copyright 2014 Team 254. All Rights Reserved.
// Author: nick@team254.com (Nick Eyre)
//
// Model and datastore CRUD methods for the sponsor slideshow.
package model
import "sort"
type SponsorSlide struct {
Id int `db:"id"`
Subtitle string
Line1 string
Line2 string
Image string
DisplayTimeSec int
DisplayOrder int
}
func (database *Database) CreateSponsorSlide(sponsorSlide *SponsorSlide) error {
return database.sponsorSlideTable.create(sponsorSlide)
}
func (database *Database) GetSponsorSlideById(id int) (*SponsorSlide, error) {
return database.sponsorSlideTable.getById(id)
}
func (database *Database) UpdateSponsorSlide(sponsorSlide *SponsorSlide) error {
return database.sponsorSlideTable.update(sponsorSlide)
}
func (database *Database) DeleteSponsorSlide(id int) error {
return database.sponsorSlideTable.delete(id)
}
func (database *Database) TruncateSponsorSlides() error {
return database.sponsorSlideTable.truncate()
}
func (database *Database) GetAllSponsorSlides() ([]SponsorSlide, error) {
sponsorSlides, err := database.sponsorSlideTable.getAll()
if err != nil {
return nil, err
}
sort.Slice(sponsorSlides, func(i, j int) bool {
return sponsorSlides[i].DisplayOrder < sponsorSlides[j].DisplayOrder
})
return sponsorSlides, nil
}
func (database *Database) GetNextSponsorSlideDisplayOrder() int {
sponsorSlides, err := database.GetAllSponsorSlides()
if err != nil {
return 0
}
if len(sponsorSlides) == 0 {
return 1
}
return sponsorSlides[len(sponsorSlides)-1].DisplayOrder + 1
}