mirror of
https://github.com/Team254/cheesy-arena-lite.git
synced 2026-03-09 21:56:50 -04:00
61 lines
1.5 KiB
Go
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
|
|
}
|