diff --git a/relayapi/api/api.go b/relayapi/api/api.go index ef15b9401..19ef27e2d 100644 --- a/relayapi/api/api.go +++ b/relayapi/api/api.go @@ -79,5 +79,5 @@ type QueryAsyncTransactionsRequest struct { type QueryAsyncTransactionsResponse struct { Txn gomatrixserverlib.Transaction `json:"transaction"` EntryID int64 `json:"entry_id"` - EntriesQueued bool `json:entries_queued` + EntriesQueued bool `json:"entries_queued"` } diff --git a/relayapi/routing/asyncevents_test.go b/relayapi/routing/asyncevents_test.go index cf9397fff..a19c437b4 100644 --- a/relayapi/routing/asyncevents_test.go +++ b/relayapi/routing/asyncevents_test.go @@ -17,11 +17,10 @@ import ( func createAsyncQuery( userID gomatrixserverlib.UserID, prevEntry gomatrixserverlib.RelayEntry, - relayServer gomatrixserverlib.ServerName, ) gomatrixserverlib.FederationRequest { var federationPathPrefixV1 = "/_matrix/federation/v1" path := federationPathPrefixV1 + "/async_events/" + userID.Raw() - request := gomatrixserverlib.NewFederationRequest("GET", userID.Domain(), relayServer, path) + request := gomatrixserverlib.NewFederationRequest("GET", userID.Domain(), "relay", path) request.SetContent(prevEntry) return request @@ -47,7 +46,7 @@ func TestGetAsyncEmptyDatabaseReturnsNothing(t *testing.T) { &db, nil, nil, nil, nil, false, "", ) - request := createAsyncQuery(*userID, gomatrixserverlib.RelayEntry{EntryID: -1}, "relay") + request := createAsyncQuery(*userID, gomatrixserverlib.RelayEntry{EntryID: -1}) response := routing.GetAsyncEvents(httpReq, &request, &relayAPI, *userID) assert.Equal(t, http.StatusOK, response.Code) @@ -56,6 +55,7 @@ func TestGetAsyncEmptyDatabaseReturnsNothing(t *testing.T) { assert.Equal(t, gomatrixserverlib.Transaction{}, jsonResponse.Txn) count, err := db.GetAsyncTransactionCount(context.Background(), *userID) + assert.Nil(t, err) assert.Zero(t, count) } @@ -87,7 +87,7 @@ func TestGetAsyncReturnsSavedTransaction(t *testing.T) { &db, nil, nil, nil, nil, false, "", ) - request := createAsyncQuery(*userID, gomatrixserverlib.RelayEntry{EntryID: -1}, "relay") + request := createAsyncQuery(*userID, gomatrixserverlib.RelayEntry{EntryID: -1}) response := routing.GetAsyncEvents(httpReq, &request, &relayAPI, *userID) assert.Equal(t, http.StatusOK, response.Code) @@ -96,7 +96,7 @@ func TestGetAsyncReturnsSavedTransaction(t *testing.T) { assert.Equal(t, transaction, jsonResponse.Txn) // And once more to clear the queue - request = createAsyncQuery(*userID, gomatrixserverlib.RelayEntry{EntryID: jsonResponse.EntryID}, "relay") + request = createAsyncQuery(*userID, gomatrixserverlib.RelayEntry{EntryID: jsonResponse.EntryID}) response = routing.GetAsyncEvents(httpReq, &request, &relayAPI, *userID) assert.Equal(t, http.StatusOK, response.Code) @@ -105,6 +105,7 @@ func TestGetAsyncReturnsSavedTransaction(t *testing.T) { assert.Equal(t, gomatrixserverlib.Transaction{}, jsonResponse.Txn) count, err := db.GetAsyncTransactionCount(context.Background(), *userID) + assert.Nil(t, err) assert.Zero(t, count) } @@ -149,7 +150,7 @@ func TestGetAsyncReturnsMultipleSavedTransactions(t *testing.T) { &db, nil, nil, nil, nil, false, "", ) - request := createAsyncQuery(*userID, gomatrixserverlib.RelayEntry{EntryID: -1}, "relay") + request := createAsyncQuery(*userID, gomatrixserverlib.RelayEntry{EntryID: -1}) response := routing.GetAsyncEvents(httpReq, &request, &relayAPI, *userID) assert.Equal(t, http.StatusOK, response.Code) @@ -157,7 +158,7 @@ func TestGetAsyncReturnsMultipleSavedTransactions(t *testing.T) { assert.True(t, jsonResponse.EntriesQueued) assert.Equal(t, transaction, jsonResponse.Txn) - request = createAsyncQuery(*userID, gomatrixserverlib.RelayEntry{EntryID: jsonResponse.EntryID}, "relay") + request = createAsyncQuery(*userID, gomatrixserverlib.RelayEntry{EntryID: jsonResponse.EntryID}) response = routing.GetAsyncEvents(httpReq, &request, &relayAPI, *userID) assert.Equal(t, http.StatusOK, response.Code) @@ -166,7 +167,7 @@ func TestGetAsyncReturnsMultipleSavedTransactions(t *testing.T) { assert.Equal(t, transaction2, jsonResponse.Txn) // And once more to clear the queue - request = createAsyncQuery(*userID, gomatrixserverlib.RelayEntry{EntryID: jsonResponse.EntryID}, "relay") + request = createAsyncQuery(*userID, gomatrixserverlib.RelayEntry{EntryID: jsonResponse.EntryID}) response = routing.GetAsyncEvents(httpReq, &request, &relayAPI, *userID) assert.Equal(t, http.StatusOK, response.Code) @@ -175,5 +176,6 @@ func TestGetAsyncReturnsMultipleSavedTransactions(t *testing.T) { assert.Equal(t, gomatrixserverlib.Transaction{}, jsonResponse.Txn) count, err := db.GetAsyncTransactionCount(context.Background(), *userID) + assert.Nil(t, err) assert.Zero(t, count) } diff --git a/relayapi/storage/shared/storage.go b/relayapi/storage/shared/storage.go index 468c3b861..0d856fbe0 100644 --- a/relayapi/storage/shared/storage.go +++ b/relayapi/storage/shared/storage.go @@ -98,8 +98,8 @@ func (d *Database) CleanAsyncTransactions( } err = d.Writer.Do(d.DB, nil, func(txn *sql.Tx) error { - err := d.RelayQueueJSON.DeleteQueueJSON(ctx, txn, nids) - return err + dbErr := d.RelayQueueJSON.DeleteQueueJSON(ctx, txn, nids) + return dbErr }) if err != nil { return fmt.Errorf("d.deleteQueueJSON: %w", err)