This commit is contained in:
Ruidy 2024-09-13 18:55:35 +02:00
parent abfbe1ff1b
commit 9c6e5ff76e
No known key found for this signature in database
GPG key ID: E00F51288CB857CC
4 changed files with 55 additions and 42 deletions

View file

@ -1,28 +1,46 @@
package cron
// func JobMonthlyBookingReport() error {
// _ = godotenv.Load()
// db, err := gorm.Open(postgres.Open(os.Getenv("DATABASE_URL")), &gorm.Config{})
// if err != nil {
// return fmt.Errorf("error connecting to the database %s", err)
// }
//
// now := time.Now()
// log.Println("Start Monthly Booking Report job at:", now)
// service, _ := booking.NewService(db)
// report := service.BuildReport("monthly", int(now.Month()), now.Year())
//
// ps, err := pdf.NewPdfService(
// os.Getenv("HTMLDOCS_PROJECT_ID"),
// os.Getenv("HTMLDOCS_REPORT_PROJECT_ID"),
// os.Getenv("HTMLDOCS_URL"),
// os.Getenv("HTMLDOCS_KEY"),
// )
// if err != nil {
// return fmt.Errorf("error starting pdf service %s", err)
// }
//
// _ = ps.BuildReport(report, "", int(now.Month()), now.Year())
// log.Printf("Executed Monthly Booking Report job at %v with errors: %s:", time.Now().Format(time.DateTime), err)
// return err
// }
import (
"fmt"
"log"
"os"
"time"
"github.com/joho/godotenv"
"gorm.io/driver/postgres"
"gorm.io/gorm"
"github.com/rjNemo/rentease/internal/driver/pdf"
"github.com/rjNemo/rentease/internal/service/booking"
)
func JobMonthlyBookingReport() error {
_ = godotenv.Load()
db, err := gorm.Open(postgres.Open(os.Getenv("DATABASE_URL")), &gorm.Config{})
if err != nil {
return fmt.Errorf("error connecting to the database %w", err)
}
now := time.Now()
log.Println("Start Monthly Booking Report job at:", now)
ps, err := pdf.NewPdfClient(
os.Getenv("HTMLDOCS_PROJECT_ID"),
os.Getenv("HTMLDOCS_REPORT_PROJECT_ID"),
os.Getenv("HTMLDOCS_URL"),
os.Getenv("HTMLDOCS_KEY"),
)
if err != nil {
return fmt.Errorf("error starting pdf service %w", err)
}
service, _ := booking.NewService(db, nil, ps)
period := "monthly"
month := int(now.Month())
year := now.Year()
err = service.BuildReport(service.Report(period, month, year), period, month, year)
log.Printf("Executed Monthly Booking Report job at %v with errors: %s:", time.Now().Format(time.DateTime), err)
return err
}

View file

@ -10,7 +10,7 @@ import (
func New(connectionString string) (*gorm.DB, error) {
db, err := gorm.Open(postgres.Open(connectionString), &gorm.Config{})
if err != nil {
return nil, fmt.Errorf("error connecting to the database %s", err)
return nil, fmt.Errorf("error connecting to the database %w", err)
}
return db, nil
@ -19,7 +19,7 @@ func New(connectionString string) (*gorm.DB, error) {
func Migrate(db *gorm.DB, tables ...any) error {
err := db.AutoMigrate(tables...)
if err != nil {
return fmt.Errorf("error migrating the database %s", err)
return fmt.Errorf("error migrating the database %w", err)
}
return nil
}

View file

@ -22,11 +22,6 @@ type Service struct {
apiKey string
}
type ProviderIndex struct {
ProvidersMap map[string]string
Providers []string
}
func NewService(secret, admin, adminSecret, apiKey string) (*Service, error) {
if secret == "" || admin == "" || adminSecret == "" || apiKey == "" {
return nil, errors.New("error building Auth service. Verify your env variables")

18
main.go
View file

@ -43,23 +43,23 @@ func run(c context.Context, getEnv func(string) string) error {
TracesSampleRate: 1.0,
ProfilesSampleRate: 1.0,
}); err != nil {
return fmt.Errorf("error initializing sentry %s", err)
return fmt.Errorf("error initializing sentry %w", err)
}
// init database
db, err := database.New(getEnv("DATABASE_URL"))
if err != nil {
return fmt.Errorf("error connecting to the database %s", err)
return fmt.Errorf("error connecting to the database %w", err)
}
if err = database.Migrate(db, &booking.Booking{}, &booking.BookingRequest{}, &booking.Item{}); err != nil {
return fmt.Errorf("error connecting to the database %s", err)
return fmt.Errorf("error connecting to the database %w", err)
}
// build calendar client
gc, err := calendar.NewGoogleClient(ctx, getEnv("CALENDAR_CREDENTIALS"))
if err != nil {
return fmt.Errorf("error building calendar client %s", err)
return fmt.Errorf("error building calendar client %w", err)
}
// build pdf client
@ -70,13 +70,13 @@ func run(c context.Context, getEnv func(string) string) error {
getEnv("HTMLDOCS_KEY"),
)
if err != nil {
return fmt.Errorf("error starting pdf client %s", err)
return fmt.Errorf("error starting pdf client %w", err)
}
// build booking service
bs, err := booking.NewService(db, gc, pc)
if err != nil {
return fmt.Errorf("error starting booking service %s", err)
return fmt.Errorf("error starting booking service %w", err)
}
// build authentication service
@ -87,14 +87,14 @@ func run(c context.Context, getEnv func(string) string) error {
getEnv("API_KEY"),
)
if err != nil {
return fmt.Errorf("error starting auth service %s", err)
return fmt.Errorf("error starting auth service %w", err)
}
// starting server
p := getEnv("PORT")
port, err := strconv.Atoi(p)
if err != nil {
return fmt.Errorf("error parsing PORT env %s", err)
return fmt.Errorf("error parsing PORT env %w", err)
}
ogs := getEnv("ORIGINS")
@ -111,7 +111,7 @@ func run(c context.Context, getEnv func(string) string) error {
server.WithOrigins(origins),
)
if err != nil {
return fmt.Errorf("error starting server %s", err)
return fmt.Errorf("error starting server %w", err)
}
srv.Start(ctx)