add dad jokes
This commit is contained in:
@@ -11,11 +11,13 @@ import (
|
||||
"github.com/sashabaranov/go-openai"
|
||||
|
||||
"gitlab.com/DeveloperDurp/DurpAPI/model"
|
||||
"gitlab.com/DeveloperDurp/DurpAPI/storage"
|
||||
)
|
||||
|
||||
type Controller struct {
|
||||
Cfg model.Config
|
||||
dbcfg model.DBConfig
|
||||
Dbcfg model.DBConfig
|
||||
Db model.Repository
|
||||
}
|
||||
|
||||
func NewController() *Controller {
|
||||
@@ -23,19 +25,30 @@ func NewController() *Controller {
|
||||
if err != nil {
|
||||
log.Fatalf("unable to load file: %e", err)
|
||||
}
|
||||
controller := &Controller{}
|
||||
controller.Cfg = model.Config{}
|
||||
controller.dbcfg = model.DBConfig{}
|
||||
|
||||
controller := &Controller{
|
||||
Cfg: model.Config{},
|
||||
Dbcfg: model.DBConfig{},
|
||||
}
|
||||
|
||||
err = env.Parse(&controller.Cfg)
|
||||
if err != nil {
|
||||
log.Fatalf("unable to parse environment variables: %e", err)
|
||||
}
|
||||
err = env.Parse(&controller.dbcfg)
|
||||
err = env.Parse(&controller.Dbcfg)
|
||||
if err != nil {
|
||||
log.Fatalf("unable to parse database variables: %e", err)
|
||||
}
|
||||
|
||||
controller.Cfg.OpenaiClient = *openai.NewClient(controller.Cfg.OpenaiApiKey)
|
||||
|
||||
Db, err := storage.Connect(controller.Dbcfg)
|
||||
|
||||
if err != nil {
|
||||
panic("Failed to connect to database")
|
||||
}
|
||||
controller.Db = *Db
|
||||
|
||||
return controller
|
||||
}
|
||||
|
||||
|
||||
@@ -6,6 +6,7 @@ import (
|
||||
"github.com/gin-gonic/gin"
|
||||
|
||||
"gitlab.com/DeveloperDurp/DurpAPI/model"
|
||||
"gitlab.com/DeveloperDurp/DurpAPI/service"
|
||||
)
|
||||
|
||||
// GetDadJoke godoc
|
||||
@@ -19,15 +20,40 @@ import (
|
||||
// @failure 400 {object} model.Message "error"
|
||||
// @Router /jokes/dadjoke [get]
|
||||
func (c *Controller) GetDadJoke(ctx *gin.Context) {
|
||||
joke, err := service.GetRandomDadJoke(c.Db.DB)
|
||||
if err != nil {
|
||||
ctx.JSON(http.StatusInternalServerError, gin.H{"message": err})
|
||||
return
|
||||
}
|
||||
|
||||
ctx.JSON(http.StatusOK, gin.H{"message": joke})
|
||||
}
|
||||
|
||||
// PostDadJoke godoc
|
||||
//
|
||||
// @Summary Generate dadjoke
|
||||
// @Description create a dad joke
|
||||
// @Tags DadJoke
|
||||
// @Accept json
|
||||
// @Produce application/json
|
||||
// @Success 200 {object} model.Message "response"
|
||||
// @failure 400 {object} model.Message "error"
|
||||
// @Router /jokes/dadjoke [post]
|
||||
func (c *Controller) PostDadJoke(ctx *gin.Context) {
|
||||
var req model.DadJoke
|
||||
|
||||
if err := ctx.ShouldBindJSON(&req); err != nil {
|
||||
ctx.JSON(http.StatusInternalServerError, gin.H{"message": err})
|
||||
return
|
||||
}
|
||||
message := "test"
|
||||
// message, err := service.GetDadJoke(req)
|
||||
// if err != nil {
|
||||
// ctx.JSON(http.StatusInternalServerError, gin.H{"message": err})
|
||||
// }
|
||||
ctx.JSON(http.StatusOK, gin.H{"message": message})
|
||||
entry := model.DadJoke{
|
||||
JOKE: req.JOKE,
|
||||
}
|
||||
|
||||
err := c.Db.DB.Create(&entry).Error
|
||||
if err != nil {
|
||||
ctx.JSON(http.StatusInternalServerError, gin.H{"message": err})
|
||||
return
|
||||
}
|
||||
ctx.JSON(http.StatusOK, gin.H{"message": "OK"})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user