Files
DurpAPI/pkg/dadjoke/service.go
2024-06-22 12:46:16 -05:00

67 lines
1.1 KiB
Go

package dadjoke
import (
"errors"
"math/rand"
)
func (h *Handler) GetRandomDadJoke() (string, error) {
jokes, err := h.getDadJokes()
if err != nil {
return "", err
}
randomIndex := rand.Intn(len(jokes))
randomElement := jokes[randomIndex]
return randomElement.JOKE, err
}
func (h *Handler) PostDadJoke(joke DadJoke) error {
jokes, err := h.getDadJokes()
if err != nil {
return err
}
found := false
for _, i := range jokes {
if i.JOKE == joke.JOKE {
found = true
break
}
}
if found {
return errors.New("Joke is already in database")
} else {
err = h.db.Create(&joke).Error
if err != nil {
return err
}
return nil
}
}
func (h *Handler) DeleteDadJoke(joke DadJoke) error {
check := &DadJoke{}
h.db.Where("joke = ?", joke.JOKE).First(check)
if check.JOKE == "" {
return errors.New("Joke does not exist")
}
err := h.db.Where("joke = ?", joke.JOKE).Delete(joke).Error
if err != nil {
return err
}
return nil
}
func (h *Handler) getDadJokes() ([]DadJoke, error) {
req := []DadJoke{}
err := h.db.Find(&req).Error
return req, err
}