add env and fix data

This commit is contained in:
Pedro Pérez 2025-01-28 23:06:25 +01:00
parent 4418e009e0
commit d947557373
2 changed files with 19 additions and 4 deletions

View File

@ -26,6 +26,7 @@ func (hq *Handlers) GetTVShow(c *fiber.Ctx) error {
var title string var title string
var scraperEpisodes []scraper.Episode var scraperEpisodes []scraper.Episode
var sqlcTvShow sqlc.TvShow
var sqlcEpisodes []sqlc.Episode var sqlcEpisodes []sqlc.Episode
var totalVoteCount int32 var totalVoteCount int32
@ -33,7 +34,7 @@ func (hq *Handlers) GetTVShow(c *fiber.Ctx) error {
if err != nil { if err != nil {
title, scraperEpisodes = scraper.ScrapeEpisodes(ttShowID) title, scraperEpisodes = scraper.ScrapeEpisodes(ttShowID)
//TODO: make transactional //TODO: make transactional
ttShow, err := hq.queries.CreateTVShow(c.Context(), sqlc.CreateTVShowParams{ sqlcTvShow, err = hq.queries.CreateTVShow(c.Context(), sqlc.CreateTVShowParams{
TtImdb: ttShowID, TtImdb: ttShowID,
Name: title, Name: title,
}) })
@ -42,14 +43,15 @@ func (hq *Handlers) GetTVShow(c *fiber.Ctx) error {
return c.SendStatus(http.StatusInternalServerError) return c.SendStatus(http.StatusInternalServerError)
} }
slog.Info("ttshowid", "id", ttShow.ID) slog.Info("ttshowid", "id", sqlcTvShow.ID)
for _, episode := range scraperEpisodes { for _, episode := range scraperEpisodes {
sqlcEpisodesParams := episode.ToEpisodeParams(ttShow.ID) sqlcEpisodesParams := episode.ToEpisodeParams(sqlcTvShow.ID)
sqlcEpisode, err := hq.queries.CreateEpisodes(c.Context(), sqlcEpisodesParams) sqlcEpisode, err := hq.queries.CreateEpisodes(c.Context(), sqlcEpisodesParams)
if err != nil { if err != nil {
slog.Error("failed to create episodes", "ttid", ttShowID, "error", err) slog.Error("failed to create episodes", "ttid", ttShowID, "error", err)
return c.SendStatus(http.StatusInternalServerError) return c.SendStatus(http.StatusInternalServerError)
} }
totalVoteCount += int32(episode.VoteCount)
sqlcEpisodes = append(sqlcEpisodes, sqlcEpisode) sqlcEpisodes = append(sqlcEpisodes, sqlcEpisode)
} }
@ -76,7 +78,6 @@ func (hq *Handlers) GetTVShow(c *fiber.Ctx) error {
return c.SendStatus(http.StatusInternalServerError) return c.SendStatus(http.StatusInternalServerError)
} }
// calculate avg rating for the show
avgRatingShow, err := hq.queries.TvShowAverageRating(c.Context(), sqlcTvShow.ID) avgRatingShow, err := hq.queries.TvShowAverageRating(c.Context(), sqlcTvShow.ID)
if err != nil { if err != nil {
slog.Error("failed to calculate avg rating for the show", "ttid", ttShowID, "error", err) slog.Error("failed to calculate avg rating for the show", "ttid", ttShowID, "error", err)

View File

@ -4,10 +4,23 @@ services:
core: core:
container_name: rating-orama container_name: rating-orama
image: rating-orama:latest image: rating-orama:latest
depends_on:
db:
condition: service_started
environment: environment:
DRIVERNAME: pgx DRIVERNAME: pgx
DATASOURCE: postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@db:5432/${POSTGRES_DB}?sslmode=disable DATASOURCE: postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@db:5432/${POSTGRES_DB}?sslmode=disable
MIGRATE: true MIGRATE: true
TITLE_SELECTOR: ${TITLE_SELECTOR}
SEASON_SELECTOR: ${SEASON_SELECTOR}
EPISODE_CARD_SELECTOR: ${EPISODE_CARD_SELECTOR}
SEASON_EPISODE_AND_TITLE_SELECTOR: ${SEASON_EPISODE_AND_TITLE_SELECTOR}
RELEASED_DATE_SELECTOR: ${RELEASED_DATE_SELECTOR}
PLOT_SELECTOR: ${PLOT_SELECTOR}
STAR_RATING_SELECTOR: ${STAR_RATING_SELECTOR}
VOTE_COUNT_SELECTOR: ${VOTE_COUNT_SELECTOR}
IMDB_EPISODES_URL: ${IMDB_EPISODES_URL}
VISIT_URL: ${VISIT_URL}
ports: ports:
- "8086:8080" - "8086:8080"
networks: networks:
@ -29,3 +42,4 @@ networks:
volumes: volumes:
ratingorama_data: ratingorama_data: