@@ -36,11 +36,15 @@ func NewGormMessageRepository(
3636}
3737
3838// Index entities.Message between 2 parties
39- func (repository * gormMessageRepository ) Index (ctx context.Context , owner string , contact string , params IndexParams ) (* []entities.Message , error ) {
39+ func (repository * gormMessageRepository ) Index (ctx context.Context , userID entities. UserID , owner string , contact string , params IndexParams ) (* []entities.Message , error ) {
4040 ctx , span := repository .tracer .Start (ctx )
4141 defer span .End ()
4242
43- query := repository .db .WithContext (ctx ).Where ("owner = ?" , owner ).Where ("contact = ?" , contact )
43+ query := repository .db .
44+ WithContext (ctx ).
45+ Where ("user_id = ?" , userID ).
46+ Where ("owner = ?" , owner ).
47+ Where ("contact = ?" , contact )
4448 if len (params .Query ) > 0 {
4549 queryPattern := "%" + params .Query + "%"
4650 query .Where ("content ILIKE ?" , queryPattern )
@@ -69,12 +73,12 @@ func (repository *gormMessageRepository) Store(ctx context.Context, message *ent
6973}
7074
7175// Load an entities.Message by ID
72- func (repository * gormMessageRepository ) Load (ctx context.Context , messageID uuid.UUID ) (* entities.Message , error ) {
76+ func (repository * gormMessageRepository ) Load (ctx context.Context , userID entities. UserID , messageID uuid.UUID ) (* entities.Message , error ) {
7377 ctx , span := repository .tracer .Start (ctx )
7478 defer span .End ()
7579
7680 message := new (entities.Message )
77- err := repository .db .WithContext (ctx ).First ( message , messageID ).Error
81+ err := repository .db .WithContext (ctx ).Where ( "user_id = ?" , userID ). Where ( "id = ?" , messageID ). First ( message ).Error
7882 if errors .Is (err , gorm .ErrRecordNotFound ) {
7983 msg := fmt .Sprintf ("message with ID [%s] does not exist" , message .ID )
8084 return nil , repository .tracer .WrapErrorSpan (span , stacktrace .PropagateWithCode (err , ErrCodeNotFound , msg ))
@@ -102,7 +106,7 @@ func (repository *gormMessageRepository) Update(ctx context.Context, message *en
102106}
103107
104108// GetOutstanding fetches messages that still to be sent to the phone
105- func (repository * gormMessageRepository ) GetOutstanding (ctx context.Context , owner string , take int ) (* []entities.Message , error ) {
109+ func (repository * gormMessageRepository ) GetOutstanding (ctx context.Context , userID entities. UserID , owner string , take int ) (* []entities.Message , error ) {
106110 ctx , span := repository .tracer .Start (ctx )
107111 defer span .End ()
108112
@@ -111,6 +115,7 @@ func (repository *gormMessageRepository) GetOutstanding(ctx context.Context, own
111115 func (tx * gorm.DB ) error {
112116 return tx .WithContext (ctx ).Model (messages ).
113117 Clauses (clause.Returning {}).
118+ Where ("user_id = ?" , userID ).
114119 Where (
115120 "id IN (?)" ,
116121 tx .Model (& entities.Message {}).
0 commit comments