Skip to content

Commit

Permalink
Merge pull request #48 from synapse-organization/cafe/fix-create-event
Browse files Browse the repository at this point in the history
feat(cafe): Fixes create event
  • Loading branch information
mobinbr authored May 2, 2024
2 parents 6b9f01a + 057ab01 commit b439207
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 36 deletions.
14 changes: 2 additions & 12 deletions api/http/cafe_handler.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ import (
"fmt"
"net/http"
"strconv"
"time"

"github.com/gin-gonic/gin"
)
Expand Down Expand Up @@ -167,19 +166,10 @@ func (h Cafe) GetComments(c *gin.Context) {
return
}

type RequestCreateEvent struct {
CafeID int32 `json:"cafe_id"`
Name string `json:"name"`
Description string `json:"description"`
StartTime time.Time `json:"start_time"`
EndTime time.Time `json:"end_time"`
ImageID string `json:"image_id"`
}

func (h Cafe) CreateEvent(c *gin.Context) {
ctx, cancel := context.WithTimeout(c, TimeOut)
defer cancel()
var req RequestCreateEvent
var req models.Event

err := c.ShouldBindJSON(&req)
if err != nil {
Expand All @@ -200,7 +190,7 @@ func (h Cafe) CreateEvent(c *gin.Context) {
return
}

err = h.Handler.CreateEvent(ctx, req.CafeID, req.Name, req.Description, req.StartTime, req.EndTime, req.ImageID)
err = h.Handler.CreateEvent(ctx, req)
if err != nil {
log.GetLog().Errorf("Unable to create event. error: %v", err)
c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()})
Expand Down
39 changes: 20 additions & 19 deletions internal/modules/cafe.go
Original file line number Diff line number Diff line change
Expand Up @@ -251,9 +251,9 @@ func (c CafeHandler) GetComments(ctx context.Context, cafeID int32, counter int)
return commentsWithNames, err
}

func (c CafeHandler) CreateEvent(ctx context.Context, cafeID int32, name string, description string, startTime time.Time, endTime time.Time, imageID string) error {
start_time := startTime.UTC()
end_time := endTime.UTC()
func (c CafeHandler) CreateEvent(ctx context.Context, event models.Event) error {
start_time := event.StartTime.UTC()
end_time := event.EndTime.UTC()

if !utils.CheckStartTime(start_time) {
return errors.ErrStartTimeInvalid.Error()
Expand All @@ -263,29 +263,30 @@ func (c CafeHandler) CreateEvent(ctx context.Context, cafeID int32, name string,
return errors.ErrEndTimeInvalid.Error()
}

exists, err := c.ImageRepo.CheckExistence(ctx, imageID)
if err != nil {
log.GetLog().Errorf("Unable to check image existence. error: %v", err)
return err
}

if !exists {
log.GetLog().Errorf("image doesn't exist")
return errors.ErrImageInvalid.Error()
}

eventID := rand.Int31()
newEvent := &models.Event{
ID: eventID,
CafeID: cafeID,
Name: name,
Description: description,
CafeID: event.CafeID,
Name: event.Name,
Description: event.Description,
StartTime: start_time,
EndTime: end_time,
ImageID: imageID,
ImageID: event.ImageID,
}

if event.ImageID != "" {
err := c.ImageRepo.Create(ctx, &models.Image{
ID: event.ImageID,
CafeID: event.CafeID,
})

if err != nil {
log.GetLog().Errorf("Unable to create image. error: %v", err)
return err
}
}

err = c.EventRepo.CreateEventForCafe(ctx, newEvent)
err := c.EventRepo.CreateEventForCafe(ctx, newEvent)
if err != nil {
log.GetLog().Errorf("Unable to create event for cafe. error: %v", err)
return err
Expand Down
8 changes: 3 additions & 5 deletions pkg/repo/events.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,7 @@ func NewEventRepoImp(postgres *pgxpool.Pool) *EventRepoImp {
description TEXT,
start_time TIMESTAMP,
end_time TIMESTAMP,
image_id TEXT,
FOREIGN KEY (cafe_id) REFERENCES cafes(id),
FOREIGN KEY (image_id) REFERENCES images(id)
FOREIGN KEY (cafe_id) REFERENCES cafes(id)
);`)
if err != nil {
log.GetLog().WithError(err).WithField("table", "events").Fatal("Unable to create table")
Expand All @@ -52,7 +50,7 @@ func NewEventRepoImp(postgres *pgxpool.Pool) *EventRepoImp {
}

func (e *EventRepoImp) CreateEventForCafe(ctx context.Context, event *models.Event) error {
_, err := e.postgres.Exec(ctx, "INSERT INTO events (id, cafe_id, name, description, start_time, end_time, image_id) VALUES ($1, $2, $3, $4, $5, $6, $7)", event.ID, event.CafeID, event.Name, event.Description, event.StartTime, event.EndTime, event.ImageID)
_, err := e.postgres.Exec(ctx, "INSERT INTO events (id, cafe_id, name, description, start_time, end_time) VALUES ($1, $2, $3, $4, $5, $6)", event.ID, event.CafeID, event.Name, event.Description, event.StartTime, event.EndTime)
if err != nil {
log.GetLog().Errorf("Unable to insert event. error: %v", err)
}
Expand Down Expand Up @@ -114,4 +112,4 @@ func (e *EventRepoImp) GetEventsByUserID(ctx context.Context, userID int32) ([]*
events = append(events, &event)
}
return events, nil
}
}

0 comments on commit b439207

Please sign in to comment.