Skip to content

Commit ef7f917

Browse files
committed
Add version when storing heartbeats
1 parent 344c10f commit ef7f917

5 files changed

Lines changed: 6 additions & 3 deletions

File tree

api/pkg/entities/heartbeat.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import (
1010
type Heartbeat struct {
1111
ID uuid.UUID `json:"id" gorm:"primaryKey;type:uuid;" example:"32343a19-da5e-4b1b-a767-3298a73703cb"`
1212
Owner string `json:"owner" gorm:"index:idx_heartbeats_owner_timestamp" example:"+18005550199"`
13+
Version string `json:"version" example:"344c10f"`
1314
UserID UserID `json:"user_id" example:"WB7DRDWrJZRGbYrv2CKGkqbzvqdC"`
1415
Timestamp time.Time `json:"timestamp" gorm:"index:idx_heartbeats_owner_timestamp" example:"2022-06-05T14:26:01.520828+03:00"`
1516
}

api/pkg/handlers/heartbeat_handler.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ func (h *HeartbeatHandler) Store(c *fiber.Ctx) error {
121121
return h.responseUnprocessableEntity(c, errors, "validation errors while storing heartbeat")
122122
}
123123

124-
heartbeat, err := h.service.Store(ctx, request.ToStoreParams(h.userFromContext(c)))
124+
heartbeat, err := h.service.Store(ctx, request.ToStoreParams(h.userFromContext(c), c.Get("X-Client-Version")))
125125
if err != nil {
126126
msg := fmt.Sprintf("cannot store heartbeat with params [%+#v]", request)
127127
ctxLogger.Error(stacktrace.Propagate(err, msg))

api/pkg/repositories/gorm_heartbeat_repository.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ func (repository *gormHeartbeatRepository) Index(ctx context.Context, userID ent
6363
query := repository.db.WithContext(ctx).Where("user_id = ?", userID).Where("owner = ?", owner)
6464
if len(params.Query) > 0 {
6565
queryPattern := "%" + params.Query + "%"
66-
query.Where("quantity ILIKE ?", queryPattern)
66+
query.Where("version LIKE ?", queryPattern)
6767
}
6868

6969
heartbeats := new([]entities.Heartbeat)

api/pkg/requests/heartbeat_store_request.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,10 @@ func (input *HeartbeatStore) Sanitize() HeartbeatStore {
2020
}
2121

2222
// ToStoreParams converts HeartbeatIndex to repositories.IndexParams
23-
func (input *HeartbeatStore) ToStoreParams(user entities.AuthUser) services.HeartbeatStoreParams {
23+
func (input *HeartbeatStore) ToStoreParams(user entities.AuthUser, version string) services.HeartbeatStoreParams {
2424
return services.HeartbeatStoreParams{
2525
Owner: input.Owner,
26+
Version: version,
2627
Timestamp: time.Now().UTC(),
2728
UserID: user.ID,
2829
}

api/pkg/services/heartbeat_service.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ func (service *HeartbeatService) Index(ctx context.Context, userID entities.User
6969
// HeartbeatStoreParams are parameters for creating a new entities.Heartbeat
7070
type HeartbeatStoreParams struct {
7171
Owner string
72+
Version string
7273
Timestamp time.Time
7374
UserID entities.UserID
7475
}

0 commit comments

Comments
 (0)