diff --git a/db/migrations/admin-migrations/2024-07-15.0-migrate-data-v1-to-v2-function.sql b/db/migrations/admin-migrations/2024-07-15.0-migrate-data-v1-to-v2-function.sql index 00186ad1e..520aaaa30 100644 --- a/db/migrations/admin-migrations/2024-07-15.0-migrate-data-v1-to-v2-function.sql +++ b/db/migrations/admin-migrations/2024-07-15.0-migrate-data-v1-to-v2-function.sql @@ -51,7 +51,8 @@ BEGIN ALTER COLUMN verification_field DROP DEFAULT, ALTER COLUMN verification_field TYPE %I.verification_type USING verification_field::text::%I.verification_type, - ADD COLUMN IF NOT EXISTS registration_contact_type %I.registration_contact_types NOT NULL DEFAULT ''PHONE_NUMBER''; + ADD COLUMN IF NOT EXISTS registration_contact_type %I.registration_contact_types NOT NULL DEFAULT ''PHONE_NUMBER'', + DROP COLUMN IF EXISTS country_code CASCADE; INSERT INTO %I.disbursements SELECT * FROM public.disbursements; ALTER TABLE public.payments diff --git a/db/migrations/sdp-migrations/2023-01-27.1-create-countries-table.sql b/db/migrations/sdp-migrations/2023-01-27.1-create-countries-table.sql index df68ba86b..dd1a89d24 100644 --- a/db/migrations/sdp-migrations/2023-01-27.1-create-countries-table.sql +++ b/db/migrations/sdp-migrations/2023-01-27.1-create-countries-table.sql @@ -22,8 +22,6 @@ ALTER TABLE disbursements ALTER COLUMN country_code SET NOT NULL; CREATE TRIGGER refresh_country_updated_at BEFORE UPDATE ON countries FOR EACH ROW EXECUTE PROCEDURE update_at_refresh(); -- +migrate Down -DROP TRIGGER refresh_country_updated_at ON countries; - -ALTER TABLE disbursements DROP COLUMN country_code; +ALTER TABLE disbursements DROP COLUMN country_code CASCADE; DROP TABLE countries CASCADE; diff --git a/db/migrations/sdp-migrations/2024-11-01.0-disbursement-drop-country.sql b/db/migrations/sdp-migrations/2024-11-01.0-disbursement-drop-country.sql new file mode 100644 index 000000000..9e6bf45e0 --- /dev/null +++ b/db/migrations/sdp-migrations/2024-11-01.0-disbursement-drop-country.sql @@ -0,0 +1,236 @@ +-- This migration drops the countries table and any references to it. + +-- +migrate Up +ALTER TABLE disbursements + DROP COLUMN country_code; + +DROP TABLE countries CASCADE; + + +-- +migrate Down +CREATE TABLE countries ( + code VARCHAR(3) PRIMARY KEY, + name VARCHAR(100) NOT NULL, + created_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW(), + updated_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW(), + deleted_at TIMESTAMP WITH TIME ZONE, + UNIQUE (name), + CONSTRAINT country_code_length_check CHECK (char_length(code) = 3) +); + +INSERT INTO countries + (code, name) +VALUES + ('AFG', 'Afghanistan'), + ('ALB', 'Albania'), + ('DZA', 'Algeria'), + ('ASM', 'American Samoa'), + ('AND', 'Andorra'), + ('AGO', 'Angola'), + ('ATG', 'Antigua and Barbuda'), + ('ARG', 'Argentina'), + ('ARM', 'Armenia'), + ('ABW', 'Aruba'), + ('AUS', 'Australia'), + ('AUT', 'Austria'), + ('AZE', 'Azerbaijan'), + ('BHS', 'Bahamas'), + ('BHR', 'Bahrain'), + ('BGD', 'Bangladesh'), + ('BRB', 'Barbados'), + ('BLR', 'Belarus'), + ('BEL', 'Belgium'), + ('BLZ', 'Belize'), + ('BEN', 'Benin'), + ('BMU', 'Bermuda'), + ('BTN', 'Bhutan'), + ('BOL', 'Bolivia'), + ('BIH', 'Bosnia and Herzegovina'), + ('BWA', 'Botswana'), + ('BRA', 'Brazil'), + ('BRN', 'Brunei'), + ('BGR', 'Bulgaria'), + ('BFA', 'Burkina Faso'), + ('BDI', 'Burundi'), + ('CPV', 'Cabo Verde'), + ('KHM', 'Cambodia'), + ('CMR', 'Cameroon'), + ('CAN', 'Canada'), + ('CAF', 'Central African Republic'), + ('TCD', 'Chad'), + ('CHL', 'Chile'), + ('CHN', 'China'), + ('COL', 'Colombia'), + ('COM', 'Comoros (the)'), + ('COG', 'Congo (the)'), + ('COK', 'Cook Islands (the)'), + ('CRI', 'Costa Rica'), + ('HRV', 'Croatia'), + ('CYP', 'Cyprus'), + ('CZE', 'Czechia'), + ('CIV', 'Côte d''Ivoire (Ivory Coast)'), + ('COD', 'Democratic Republic of the Congo'), + ('DNK', 'Denmark'), + ('DJI', 'Djibouti'), + ('DMA', 'Dominica'), + ('DOM', 'Dominican Republic'), + ('ECU', 'Ecuador'), + ('EGY', 'Egypt'), + ('SLV', 'El Salvador'), + ('GNQ', 'Equatorial Guinea'), + ('ERI', 'Eritrea'), + ('EST', 'Estonia'), + ('SWZ', 'Eswatini'), + ('ETH', 'Ethiopia'), + ('FJI', 'Fiji'), + ('FIN', 'Finland'), + ('FRA', 'France'), + ('GUF', 'French Guiana'), + ('PYF', 'French Polynesia'), + ('ATF', 'French Southern Territories (the)'), + ('GAB', 'Gabon'), + ('GMB', 'Gambia (the)'), + ('GEO', 'Georgia'), + ('DEU', 'Germany'), + ('GHA', 'Ghana'), + ('GRC', 'Greece'), + ('GRL', 'Greenland'), + ('GRD', 'Grenada'), + ('GUM', 'Guam'), + ('GTM', 'Guatemala'), + ('GIN', 'Guinea'), + ('GNB', 'Guinea-Bissau'), + ('GUY', 'Guyana'), + ('HTI', 'Haiti'), + ('HND', 'Honduras'), + ('HUN', 'Hungary'), + ('ISL', 'Iceland'), + ('IND', 'India'), + ('IDN', 'Indonesia'), + ('IRQ', 'Iraq'), + ('IRL', 'Ireland'), + ('ISR', 'Israel'), + ('ITA', 'Italy'), + ('JAM', 'Jamaica'), + ('JPN', 'Japan'), + ('JOR', 'Jordan'), + ('KAZ', 'Kazakhstan'), + ('KEN', 'Kenya'), + ('KIR', 'Kiribati'), + ('KOR', 'South Korea'), + ('KWT', 'Kuwait'), + ('KGZ', 'Kyrgyzstan'), + ('LAO', 'Laos'), + ('LVA', 'Latvia'), + ('LBN', 'Lebanon'), + ('LSO', 'Lesotho'), + ('LBR', 'Liberia'), + ('LBY', 'Libya'), + ('LIE', 'Liechtenstein'), + ('LTU', 'Lithuania'), + ('LUX', 'Luxembourg'), + ('MDG', 'Madagascar'), + ('MWI', 'Malawi'), + ('MYS', 'Malaysia'), + ('MDV', 'Maldives'), + ('MLI', 'Mali'), + ('MLT', 'Malta'), + ('MHL', 'Marshall Islands (the)'), + ('MTQ', 'Martinique'), + ('MRT', 'Mauritania'), + ('MUS', 'Mauritius'), + ('MEX', 'Mexico'), + ('FSM', 'Micronesia'), + ('MDA', 'Moldova'), + ('MCO', 'Monaco'), + ('MNG', 'Mongolia'), + ('MNE', 'Montenegro'), + ('MAR', 'Morocco'), + ('MOZ', 'Mozambique'), + ('MMR', 'Myanmar'), + ('NAM', 'Namibia'), + ('NRU', 'Nauru'), + ('NPL', 'Nepal'), + ('NLD', 'Netherlands (the)'), + ('NZL', 'New Zealand'), + ('NIC', 'Nicaragua'), + ('NER', 'Niger'), + ('NGA', 'Nigeria'), + ('MKD', 'North Macedonia (Republic of)'), + ('NOR', 'Norway'), + ('OMN', 'Oman'), + ('PAK', 'Pakistan'), + ('PLW', 'Palau'), + ('PAN', 'Panama'), + ('PNG', 'Papua New Guinea'), + ('PRY', 'Paraguay'), + ('PER', 'Peru'), + ('PHL', 'Philippines (the)'), + ('POL', 'Poland'), + ('PRT', 'Portugal'), + ('PRI', 'Puerto Rico'), + ('QAT', 'Qatar'), + ('ROU', 'Romania'), + ('RUS', 'Russia'), + ('RWA', 'Rwanda'), + ('REU', 'Réunion'), + ('BLM', 'Saint Barts'), + ('KNA', 'Saint Kitts and Nevis'), + ('LCA', 'Saint Lucia'), + ('MAF', 'Saint Martin'), + ('VCT', 'Saint Vincent and the Grenadines'), + ('WSM', 'Samoa'), + ('SMR', 'San Marino'), + ('STP', 'Sao Tome and Principe'), + ('SAU', 'Saudi Arabia'), + ('SEN', 'Senegal'), + ('SRB', 'Serbia'), + ('SYC', 'Seychelles'), + ('SLE', 'Sierra Leone'), + ('SGP', 'Singapore'), + ('SVK', 'Slovakia'), + ('SVN', 'Slovenia'), + ('SLB', 'Solomon Islands'), + ('SOM', 'Somalia'), + ('ZAF', 'South Africa'), + ('SSD', 'South Sudan'), + ('ESP', 'Spain'), + ('LKA', 'Sri Lanka'), + ('SDN', 'Sudan (the)'), + ('SUR', 'Suriname'), + ('SWE', 'Sweden'), + ('CHE', 'Switzerland'), + ('TWN', 'Taiwan'), + ('TJK', 'Tajikistan'), + ('TZA', 'Tanzania'), + ('THA', 'Thailand'), + ('TLS', 'Timor-Leste'), + ('TGO', 'Togo'), + ('TON', 'Tonga'), + ('TTO', 'Trinidad and Tobago'), + ('TUN', 'Tunisia'), + ('TUR', 'Turkey'), + ('TKM', 'Turkmenistan'), + ('TCA', 'Turks and Caicos Islands'), + ('TUV', 'Tuvalu'), + ('UGA', 'Uganda'), + ('UKR', 'Ukraine'), + ('ARE', 'United Arab Emirates'), + ('GBR', 'United Kingdom'), + ('UMI', 'United States Minor Outlying Islands'), + ('USA', 'United States of America'), + ('URY', 'Uruguay'), + ('UZB', 'Uzbekistan'), + ('VUT', 'Vanuatu'), + ('VEN', 'Venezuela'), + ('VNM', 'Vietnam'), + ('VGB', 'Virgin Islands (British)'), + ('VIR', 'Virgin Islands (U.S.)'), + ('YEM', 'Yemen'), + ('ZMB', 'Zambia'), + ('ZWE', 'Zimbabwe') +ON CONFLICT DO NOTHING; + +ALTER TABLE disbursements + ADD COLUMN country_code VARCHAR(3), + ADD CONSTRAINT fk_disbursement_country_code FOREIGN KEY (country_code) REFERENCES countries (code); diff --git a/internal/data/assets_test.go b/internal/data/assets_test.go index 67e23d8cf..f3588baa0 100644 --- a/internal/data/assets_test.go +++ b/internal/data/assets_test.go @@ -451,8 +451,6 @@ func Test_GetAssetsPerReceiverWallet(t *testing.T) { require.NoError(t, err) // 1. Create assets, wallets and disbursements: - country := CreateCountryFixture(t, ctx, dbConnectionPool, "ATL", "Atlantis") - asset1 := CreateAssetFixture(t, ctx, dbConnectionPool, "FOO1", "GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVV") asset2 := CreateAssetFixture(t, ctx, dbConnectionPool, "FOO2", "GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVV") @@ -460,28 +458,24 @@ func Test_GetAssetsPerReceiverWallet(t *testing.T) { walletB := CreateWalletFixture(t, ctx, dbConnectionPool, "walletB", "https://www.b.com", "www.b.com", "b://") disbursementA1 := CreateDisbursementFixture(t, ctx, dbConnectionPool, models.Disbursements, &Disbursement{ - Country: country, Wallet: walletA, Status: ReadyDisbursementStatus, Asset: asset1, ReceiverRegistrationMessageTemplate: "Disbursement SMS Registration Message Template A1", }) disbursementA2 := CreateDisbursementFixture(t, ctx, dbConnectionPool, models.Disbursements, &Disbursement{ - Country: country, Wallet: walletA, Status: ReadyDisbursementStatus, Asset: asset2, ReceiverRegistrationMessageTemplate: "Disbursement SMS Registration Message Template A2", }) disbursementB1 := CreateDisbursementFixture(t, ctx, dbConnectionPool, models.Disbursements, &Disbursement{ - Country: country, Wallet: walletB, Status: ReadyDisbursementStatus, Asset: asset1, ReceiverRegistrationMessageTemplate: "Disbursement SMS Registration Message Template B1", }) disbursementB2 := CreateDisbursementFixture(t, ctx, dbConnectionPool, models.Disbursements, &Disbursement{ - Country: country, Wallet: walletB, Status: ReadyDisbursementStatus, Asset: asset2, diff --git a/internal/data/circle_transfer_requests_test.go b/internal/data/circle_transfer_requests_test.go index 5067b6745..1ce965107 100644 --- a/internal/data/circle_transfer_requests_test.go +++ b/internal/data/circle_transfer_requests_test.go @@ -346,13 +346,11 @@ func Test_CircleTransferRequestModel_GetOrInsert(t *testing.T) { models, err := NewModels(dbConnectionPool) require.NoError(t, err) asset := CreateAssetFixture(t, ctx, dbConnectionPool, "USDC", "GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVV") - country := CreateCountryFixture(t, ctx, dbConnectionPool, "FRA", "France") wallet := CreateWalletFixture(t, ctx, dbConnectionPool, "wallet1", "https://www.wallet.com", "www.wallet.com", "wallet1://") disbursement := CreateDisbursementFixture(t, ctx, dbConnectionPool, models.Disbursements, &Disbursement{ - Country: country, - Wallet: wallet, - Status: ReadyDisbursementStatus, - Asset: asset, + Wallet: wallet, + Status: ReadyDisbursementStatus, + Asset: asset, }) receiverReady := CreateReceiverFixture(t, ctx, dbConnectionPool, &Receiver{}) rwReady := CreateReceiverWalletFixture(t, ctx, dbConnectionPool, receiverReady.ID, wallet.ID, ReadyReceiversWalletStatus) @@ -547,13 +545,11 @@ func Test_CircleTransferRequestModel_GetCurrentTransfersForPaymentIDs(t *testing models, outerErr := NewModels(dbConnectionPool) require.NoError(t, outerErr) asset := CreateAssetFixture(t, ctx, dbConnectionPool, "USDC", "GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVV") - country := CreateCountryFixture(t, ctx, dbConnectionPool, "FRA", "France") wallet := CreateWalletFixture(t, ctx, dbConnectionPool, "wallet1", "https://www.wallet.com", "www.wallet.com", "wallet1://") disbursement := CreateDisbursementFixture(t, ctx, dbConnectionPool, models.Disbursements, &Disbursement{ - Country: country, - Wallet: wallet, - Status: ReadyDisbursementStatus, - Asset: asset, + Wallet: wallet, + Status: ReadyDisbursementStatus, + Asset: asset, }) receiverReady := CreateReceiverFixture(t, ctx, dbConnectionPool, &Receiver{}) rwReady := CreateReceiverWalletFixture(t, ctx, dbConnectionPool, receiverReady.ID, wallet.ID, ReadyReceiversWalletStatus) diff --git a/internal/data/countries.go b/internal/data/countries.go deleted file mode 100644 index d05eed75a..000000000 --- a/internal/data/countries.go +++ /dev/null @@ -1,69 +0,0 @@ -package data - -import ( - "context" - "database/sql" - "errors" - "fmt" - "time" - - "github.com/stellar/stellar-disbursement-platform-backend/db" -) - -type Country struct { - Code string `json:"code" db:"code"` - Name string `json:"name" db:"name"` - CreatedAt time.Time `json:"created_at,omitempty" db:"created_at"` - UpdatedAt time.Time `json:"updated_at,omitempty" db:"updated_at"` - DeletedAt *time.Time `json:"-" db:"deleted_at"` -} - -type CountryModel struct { - dbConnectionPool db.DBConnectionPool -} - -func (m *CountryModel) Get(ctx context.Context, code string) (*Country, error) { - var country Country - query := ` - SELECT - c.code, - c.name, - c.created_at, - c.updated_at - FROM - countries c - WHERE - c.code = $1 - ` - - err := m.dbConnectionPool.GetContext(ctx, &country, query, code) - if err != nil { - if errors.Is(err, sql.ErrNoRows) { - return nil, ErrRecordNotFound - } - return nil, fmt.Errorf("error querying country code %s: %w", code, err) - } - return &country, nil -} - -// GetAll returns all countries in the database -func (m *CountryModel) GetAll(ctx context.Context) ([]Country, error) { - countries := []Country{} - query := ` - SELECT - c.code, - c.name, - c.created_at, - c.updated_at - FROM - countries c - ORDER BY - c.name ASC - ` - - err := m.dbConnectionPool.SelectContext(ctx, &countries, query) - if err != nil { - return nil, fmt.Errorf("error querying countries: %w", err) - } - return countries, nil -} diff --git a/internal/data/countries_test.go b/internal/data/countries_test.go deleted file mode 100644 index ad3a2ee8f..000000000 --- a/internal/data/countries_test.go +++ /dev/null @@ -1,66 +0,0 @@ -package data - -import ( - "context" - "testing" - - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - - "github.com/stellar/stellar-disbursement-platform-backend/db" - "github.com/stellar/stellar-disbursement-platform-backend/db/dbtest" -) - -func Test_CountryModelGet(t *testing.T) { - dbt := dbtest.Open(t) - defer dbt.Close() - dbConnectionPool, err := db.OpenDBConnectionPool(dbt.DSN) - require.NoError(t, err) - defer dbConnectionPool.Close() - - ctx := context.Background() - - countryModel := &CountryModel{dbConnectionPool: dbConnectionPool} - - t.Run("returns error when country is not found", func(t *testing.T) { - _, err := countryModel.Get(ctx, "not-found") - require.Error(t, err) - require.Equal(t, ErrRecordNotFound, err) - }) - - t.Run("returns asset successfully", func(t *testing.T) { - expected := CreateCountryFixture(t, ctx, dbConnectionPool, "FRA", "France") - actual, err := countryModel.Get(ctx, "FRA") - require.NoError(t, err) - - assert.Equal(t, expected, actual) - }) -} - -func Test_CountryModelGetAll(t *testing.T) { - dbt := dbtest.Open(t) - defer dbt.Close() - dbConnectionPool, err := db.OpenDBConnectionPool(dbt.DSN) - require.NoError(t, err) - defer dbConnectionPool.Close() - - ctx := context.Background() - - countryModel := &CountryModel{dbConnectionPool: dbConnectionPool} - - t.Run("returns all countries successfully", func(t *testing.T) { - expected := ClearAndCreateCountryFixtures(t, ctx, dbConnectionPool) - actual, err := countryModel.GetAll(ctx) - require.NoError(t, err) - - assert.Equal(t, expected, actual) - }) - - t.Run("returns empty array when no countries", func(t *testing.T) { - DeleteAllCountryFixtures(t, ctx, dbConnectionPool) - actual, err := countryModel.GetAll(ctx) - require.NoError(t, err) - - assert.Equal(t, []Country{}, actual) - }) -} diff --git a/internal/data/disbursement_instructions_test.go b/internal/data/disbursement_instructions_test.go index 106f96931..317f11ac3 100644 --- a/internal/data/disbursement_instructions_test.go +++ b/internal/data/disbursement_instructions_test.go @@ -24,14 +24,12 @@ func Test_DisbursementInstructionModel_ProcessAll(t *testing.T) { ctx := context.Background() asset := CreateAssetFixture(t, ctx, dbConnectionPool, "USDC", "GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVV") - country := CreateCountryFixture(t, ctx, dbConnectionPool, "FRA", "France") wallet := CreateWalletFixture(t, ctx, dbConnectionPool, "wallet1", "https://www.wallet.com", "www.wallet.com", "wallet1://") disbursement := CreateDraftDisbursementFixture(t, ctx, dbConnectionPool, &DisbursementModel{dbConnectionPool: dbConnectionPool}, Disbursement{ - Name: "disbursement1", - Asset: asset, - Country: country, - Wallet: wallet, + Name: "disbursement1", + Asset: asset, + Wallet: wallet, }) di := NewDisbursementInstructionModel(dbConnectionPool) @@ -259,11 +257,10 @@ func Test_DisbursementInstructionModel_ProcessAll(t *testing.T) { // New instructions readyDisbursement := CreateDisbursementFixture(t, ctx, dbConnectionPool, &DisbursementModel{dbConnectionPool: dbConnectionPool}, &Disbursement{ - Name: "readyDisbursement", - Country: country, - Wallet: wallet, - Asset: asset, - Status: ReadyDisbursementStatus, + Name: "readyDisbursement", + Wallet: wallet, + Asset: asset, + Status: ReadyDisbursementStatus, }) newInstruction1 := DisbursementInstruction{ diff --git a/internal/data/disbursement_receivers_test.go b/internal/data/disbursement_receivers_test.go index 9d964f914..061c199ba 100644 --- a/internal/data/disbursement_receivers_test.go +++ b/internal/data/disbursement_receivers_test.go @@ -25,14 +25,12 @@ func Test_DisbursementReceiverModel_Count(t *testing.T) { paymentModel := &PaymentModel{dbConnectionPool: dbConnectionPool} asset := CreateAssetFixture(t, ctx, dbConnectionPool, "USDC", "GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVV") - country := CreateCountryFixture(t, ctx, dbConnectionPool, "FRA", "France") wallet := CreateWalletFixture(t, ctx, dbConnectionPool, "wallet1", "https://www.wallet.com", "www.wallet.com", "wallet1://") disbursement1 := CreateDisbursementFixture(t, ctx, dbConnectionPool, disbursementModel, &Disbursement{ - Country: country, - Wallet: wallet, - Status: ReadyDisbursementStatus, - Asset: asset, + Wallet: wallet, + Status: ReadyDisbursementStatus, + Asset: asset, }) receiver1 := CreateReceiverFixture(t, ctx, dbConnectionPool, &Receiver{}) @@ -87,14 +85,12 @@ func Test_DisbursementReceiverModel_GetAll(t *testing.T) { paymentModel := &PaymentModel{dbConnectionPool: dbConnectionPool} asset := CreateAssetFixture(t, ctx, dbConnectionPool, "USDC", "GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVV") - country := CreateCountryFixture(t, ctx, dbConnectionPool, "FRA", "France") wallet := CreateWalletFixture(t, ctx, dbConnectionPool, "wallet1", "https://www.wallet.com", "www.wallet.com", "wallet1://") disbursement1 := CreateDisbursementFixture(t, ctx, dbConnectionPool, disbursementModel, &Disbursement{ - Country: country, - Wallet: wallet, - Status: ReadyDisbursementStatus, - Asset: asset, + Wallet: wallet, + Status: ReadyDisbursementStatus, + Asset: asset, }) receiver1 := CreateReceiverFixture(t, ctx, dbConnectionPool, &Receiver{}) diff --git a/internal/data/disbursements.go b/internal/data/disbursements.go index ea55a0e44..e2bef70c5 100644 --- a/internal/data/disbursements.go +++ b/internal/data/disbursements.go @@ -19,7 +19,6 @@ import ( type Disbursement struct { ID string `json:"id" db:"id"` Name string `json:"name" db:"name"` - Country *Country `json:"country,omitempty" db:"country"` Wallet *Wallet `json:"wallet,omitempty" db:"wallet"` Asset *Asset `json:"asset,omitempty" db:"asset"` Status DisbursementStatus `json:"status" db:"status"` @@ -72,9 +71,9 @@ var ( func (d *DisbursementModel) Insert(ctx context.Context, disbursement *Disbursement) (string, error) { const q = ` INSERT INTO - disbursements (name, status, status_history, wallet_id, asset_id, country_code, verification_field, receiver_registration_message_template, registration_contact_type) + disbursements (name, status, status_history, wallet_id, asset_id, verification_field, receiver_registration_message_template, registration_contact_type) VALUES - ($1, $2, $3, $4, $5, $6, $7, $8, $9) + ($1, $2, $3, $4, $5, $6, $7, $8) RETURNING id ` var newId string @@ -84,7 +83,6 @@ func (d *DisbursementModel) Insert(ctx context.Context, disbursement *Disburseme disbursement.StatusHistory, disbursement.Wallet.ID, disbursement.Asset.ID, - disbursement.Country.Code, disbursement.VerificationField, disbursement.ReceiverRegistrationMessageTemplate, disbursement.RegistrationContactType, @@ -139,16 +137,11 @@ const selectDisbursementQuery = ` a.code as "asset.code", a.issuer as "asset.issuer", a.created_at as "asset.created_at", - a.updated_at as "asset.updated_at", - c.code as "country.code", - c.name as "country.name", - c.created_at as "country.created_at", - c.updated_at as "country.updated_at" + a.updated_at as "asset.updated_at" FROM disbursements d JOIN wallets w on d.wallet_id = w.id JOIN assets a on d.asset_id = a.id - JOIN countries c on d.country_code = c.code ` func (d *DisbursementModel) Get(ctx context.Context, sqlExec db.SQLExecuter, id string) (*Disbursement, error) { @@ -259,7 +252,6 @@ func (d *DisbursementModel) Count(ctx context.Context, sqlExec db.SQLExecuter, q disbursements d JOIN wallets w on d.wallet_id = w.id JOIN assets a on d.asset_id = a.id - JOIN countries c on d.country_code = c.code ` query, params := d.newDisbursementQuery(baseQuery, queryParams, false) diff --git a/internal/data/disbursements_test.go b/internal/data/disbursements_test.go index ed073e661..efd51dd84 100644 --- a/internal/data/disbursements_test.go +++ b/internal/data/disbursements_test.go @@ -25,7 +25,6 @@ func Test_DisbursementModelInsert(t *testing.T) { disbursementModel := DisbursementModel{dbConnectionPool: dbConnectionPool} asset := CreateAssetFixture(t, ctx, dbConnectionPool, "USDC", "GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVV") - country := CreateCountryFixture(t, ctx, dbConnectionPool, "FRA", "France") wallet := CreateWalletFixture(t, ctx, dbConnectionPool, "wallet1", "https://www.wallet.com", "www.wallet.com", "wallet1://") wallet.Assets = nil @@ -41,7 +40,6 @@ func Test_DisbursementModelInsert(t *testing.T) { }, }, Asset: asset, - Country: country, Wallet: wallet, VerificationField: VerificationTypeDateOfBirth, ReceiverRegistrationMessageTemplate: smsTemplate, @@ -68,7 +66,6 @@ func Test_DisbursementModelInsert(t *testing.T) { assert.Equal(t, "disbursement2", actual.Name) assert.Equal(t, DraftDisbursementStatus, actual.Status) assert.Equal(t, asset, actual.Asset) - assert.Equal(t, country, actual.Country) assert.Equal(t, wallet, actual.Wallet) assert.Equal(t, smsTemplate, actual.ReceiverRegistrationMessageTemplate) assert.Equal(t, 1, len(actual.StatusHistory)) @@ -91,7 +88,6 @@ func Test_DisbursementModelCount(t *testing.T) { disbursementModel := DisbursementModel{dbConnectionPool: dbConnectionPool} asset := CreateAssetFixture(t, ctx, dbConnectionPool, "USDC", "GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVV") - country := CreateCountryFixture(t, ctx, dbConnectionPool, "FRA", "France") wallet := CreateWalletFixture(t, ctx, dbConnectionPool, "wallet1", "https://www.wallet.com", "www.wallet.com", "wallet1://") disbursement := Disbursement{ @@ -102,9 +98,8 @@ func Test_DisbursementModelCount(t *testing.T) { UserID: "user1", }, }, - Asset: asset, - Country: country, - Wallet: wallet, + Asset: asset, + Wallet: wallet, } t.Run("returns 0 when no disbursements exist", func(t *testing.T) { @@ -156,7 +151,6 @@ func Test_DisbursementModelGet(t *testing.T) { disbursementModel := DisbursementModel{dbConnectionPool: dbConnectionPool} asset := CreateAssetFixture(t, ctx, dbConnectionPool, "USDC", "GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVV") - country := CreateCountryFixture(t, ctx, dbConnectionPool, "FRA", "France") wallet := CreateWalletFixture(t, ctx, dbConnectionPool, "wallet1", "https://www.wallet.com", "www.wallet.com", "wallet1://") disbursement := Disbursement{ @@ -168,9 +162,8 @@ func Test_DisbursementModelGet(t *testing.T) { UserID: "user1", }, }, - Asset: asset, - Country: country, - Wallet: wallet, + Asset: asset, + Wallet: wallet, } t.Run("returns error when disbursement does not exist", func(t *testing.T) { @@ -201,7 +194,6 @@ func Test_DisbursementModelGetByName(t *testing.T) { disbursementModel := DisbursementModel{dbConnectionPool: dbConnectionPool} asset := CreateAssetFixture(t, ctx, dbConnectionPool, "USDC", "GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVV") - country := CreateCountryFixture(t, ctx, dbConnectionPool, "FRA", "France") wallet := CreateWalletFixture(t, ctx, dbConnectionPool, "wallet1", "https://www.wallet.com", "www.wallet.com", "wallet1://") disbursement := Disbursement{ @@ -213,9 +205,8 @@ func Test_DisbursementModelGetByName(t *testing.T) { UserID: "user1", }, }, - Asset: asset, - Country: country, - Wallet: wallet, + Asset: asset, + Wallet: wallet, } t.Run("returns error when disbursement does not exist", func(t *testing.T) { @@ -236,7 +227,6 @@ func Test_DisbursementModelGetByName(t *testing.T) { func Test_DisbursementModelGetAll(t *testing.T) { dbt := dbtest.Open(t) defer dbt.Close() - dbConnectionPool, err := db.OpenDBConnectionPool(dbt.DSN) require.NoError(t, err) defer dbConnectionPool.Close() @@ -247,7 +237,6 @@ func Test_DisbursementModelGetAll(t *testing.T) { paymentModel := PaymentModel{dbConnectionPool: dbConnectionPool} asset := CreateAssetFixture(t, ctx, dbConnectionPool, "USDC", "GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVV") - country := CreateCountryFixture(t, ctx, dbConnectionPool, "FRA", "France") wallet := CreateWalletFixture(t, ctx, dbConnectionPool, "wallet1", "https://www.wallet.com", "www.wallet.com", "wallet1://") disbursement := Disbursement{ @@ -258,9 +247,8 @@ func Test_DisbursementModelGetAll(t *testing.T) { UserID: "user1", }, }, - Asset: asset, - Country: country, - Wallet: wallet, + Asset: asset, + Wallet: wallet, } t.Run("returns empty list when no disbursements exist", func(t *testing.T) { @@ -281,8 +269,8 @@ func Test_DisbursementModelGetAll(t *testing.T) { actualDisbursements, err := disbursementModel.GetAll(ctx, dbConnectionPool, &QueryParams{}) require.NoError(t, err) - assert.Equal(t, 2, len(actualDisbursements)) - assert.Equal(t, []*Disbursement{expected1, expected2}, actualDisbursements) + assert.Len(t, actualDisbursements, 2) + assert.Equal(t, []*Disbursement{expected2, expected1}, actualDisbursements) }) t.Run("returns disbursements successfully with limit", func(t *testing.T) { @@ -350,7 +338,7 @@ func Test_DisbursementModelGetAll(t *testing.T) { assert.Equal(t, []*Disbursement{expected1}, actualDisbursements) }) - t.Run("returns disbursements successfully with statuses parameter ", func(t *testing.T) { + t.Run("returns disbursements successfully with statuses parameter", func(t *testing.T) { DeleteAllDisbursementFixtures(t, ctx, dbConnectionPool) disbursement.Name = "disbursement1" @@ -372,6 +360,7 @@ func Test_DisbursementModelGetAll(t *testing.T) { assert.Equal(t, 2, len(actualDisbursements)) assert.Equal(t, []*Disbursement{expected2, expected1}, actualDisbursements) }) + t.Run("returns disbursements successfully with stats", func(t *testing.T) { DeleteAllDisbursementFixtures(t, ctx, dbConnectionPool) @@ -508,7 +497,6 @@ func Test_DisbursementModel_Update(t *testing.T) { func Test_DisbursementModel_CompleteDisbursements(t *testing.T) { dbt := dbtest.Open(t) defer dbt.Close() - dbConnectionPool, outerErr := db.OpenDBConnectionPool(dbt.DSN) require.NoError(t, outerErr) defer dbConnectionPool.Close() @@ -518,15 +506,6 @@ func Test_DisbursementModel_CompleteDisbursements(t *testing.T) { models, err := NewModels(dbConnectionPool) require.NoError(t, err) - DeleteAllPaymentsFixtures(t, ctx, dbConnectionPool) - DeleteAllDisbursementFixtures(t, ctx, dbConnectionPool) - DeleteAllCountryFixtures(t, ctx, dbConnectionPool) - DeleteAllAssetFixtures(t, ctx, dbConnectionPool) - DeleteAllReceiverWalletsFixtures(t, ctx, dbConnectionPool) - DeleteAllReceiversFixtures(t, ctx, dbConnectionPool) - DeleteAllWalletFixtures(t, ctx, dbConnectionPool) - - country := CreateCountryFixture(t, ctx, dbConnectionPool, "BRA", "Brazil") wallet := CreateWalletFixture(t, ctx, dbConnectionPool, "Wallet", "https://www.wallet.com", "www.wallet.com", "wallet://") asset := CreateAssetFixture(t, ctx, dbConnectionPool, "USDC", "GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVV") @@ -539,7 +518,6 @@ func Test_DisbursementModel_CompleteDisbursements(t *testing.T) { Status: ReadyDisbursementStatus, Asset: asset, Wallet: wallet, - Country: country, VerificationField: VerificationTypeDateOfBirth, }) @@ -567,7 +545,6 @@ func Test_DisbursementModel_CompleteDisbursements(t *testing.T) { Status: StartedDisbursementStatus, Asset: asset, Wallet: wallet, - Country: country, VerificationField: VerificationTypeDateOfBirth, }) @@ -605,7 +582,6 @@ func Test_DisbursementModel_CompleteDisbursements(t *testing.T) { Status: StartedDisbursementStatus, Asset: asset, Wallet: wallet, - Country: country, VerificationField: VerificationTypeDateOfBirth, }) @@ -624,7 +600,6 @@ func Test_DisbursementModel_CompleteDisbursements(t *testing.T) { Status: StartedDisbursementStatus, Asset: asset, Wallet: wallet, - Country: country, VerificationField: VerificationTypeDateOfBirth, }) diff --git a/internal/data/fixtures.go b/internal/data/fixtures.go index 6d5b45f75..3654b77bb 100644 --- a/internal/data/fixtures.go +++ b/internal/data/fixtures.go @@ -226,66 +226,6 @@ func EnableOrDisableWalletFixtures(t *testing.T, ctx context.Context, sqlExec db require.NoError(t, err) } -func GetCountryFixture(t *testing.T, ctx context.Context, sqlExec db.SQLExecuter, code string) *Country { - const query = ` - SELECT - * - FROM - countries - WHERE - code = $1 - ` - - country := &Country{} - err := sqlExec.GetContext(ctx, country, query, code) - require.NoError(t, err) - - return country -} - -func CreateCountryFixture(t *testing.T, ctx context.Context, sqlExec db.SQLExecuter, code, name string) *Country { - const query = ` - WITH create_country AS ( - INSERT INTO countries - (code, name) - VALUES - ($1, $2) - ON CONFLICT DO NOTHING - RETURNING * - ) - SELECT created_at, updated_at FROM create_country - UNION ALL - SELECT created_at, updated_at FROM countries WHERE code = $1 AND name = $2 - ` - - country := &Country{ - Code: code, - Name: name, - } - - err := sqlExec.QueryRowxContext(ctx, query, code, name).Scan(&country.CreatedAt, &country.UpdatedAt) - require.NoError(t, err) - - return country -} - -// DeleteAllCountryFixtures deletes all countries in the database -func DeleteAllCountryFixtures(t *testing.T, ctx context.Context, sqlExec db.SQLExecuter) { - const query = "DELETE FROM countries" - _, err := sqlExec.ExecContext(ctx, query) - require.NoError(t, err) -} - -// ClearAndCreateCountryFixtures deletes all countries in the database then creates new countries for testing -func ClearAndCreateCountryFixtures(t *testing.T, ctx context.Context, sqlExec db.SQLExecuter) []Country { - DeleteAllCountryFixtures(t, ctx, sqlExec) - expected := []Country{ - *CreateCountryFixture(t, ctx, sqlExec, "BRA", "Brazil"), - *CreateCountryFixture(t, ctx, sqlExec, "UKR", "Ukraine"), - } - return expected -} - func CreateReceiverFixture(t *testing.T, ctx context.Context, sqlExec db.SQLExecuter, r *Receiver) *Receiver { t.Helper() @@ -570,9 +510,6 @@ func CreateDisbursementFixture(t *testing.T, ctx context.Context, sqlExec db.SQL if d.Asset == nil { d.Asset = GetAssetFixture(t, ctx, sqlExec, FixtureAssetUSDC) } - if d.Country == nil { - d.Country = GetCountryFixture(t, ctx, sqlExec, FixtureCountryUKR) - } if d.VerificationField == "" { d.VerificationField = VerificationTypeDateOfBirth } @@ -825,5 +762,4 @@ func DeleteAllFixtures(t *testing.T, ctx context.Context, sqlExec db.SQLExecuter DeleteAllDisbursementFixtures(t, ctx, sqlExec) DeleteAllWalletFixtures(t, ctx, sqlExec) DeleteAllAssetFixtures(t, ctx, sqlExec) - DeleteAllCountryFixtures(t, ctx, sqlExec) } diff --git a/internal/data/models.go b/internal/data/models.go index 939d41c08..96d0c7961 100644 --- a/internal/data/models.go +++ b/internal/data/models.go @@ -16,7 +16,6 @@ var ( type Models struct { Disbursements *DisbursementModel Wallets *WalletModel - Countries *CountryModel Assets *AssetModel Organizations *OrganizationModel Payment *PaymentModel @@ -37,7 +36,6 @@ func NewModels(dbConnectionPool db.DBConnectionPool) (*Models, error) { return &Models{ Disbursements: &DisbursementModel{dbConnectionPool: dbConnectionPool}, Wallets: &WalletModel{dbConnectionPool: dbConnectionPool}, - Countries: &CountryModel{dbConnectionPool: dbConnectionPool}, Assets: &AssetModel{dbConnectionPool: dbConnectionPool}, Organizations: &OrganizationModel{dbConnectionPool: dbConnectionPool}, Payment: &PaymentModel{dbConnectionPool: dbConnectionPool}, diff --git a/internal/data/payments_test.go b/internal/data/payments_test.go index 193bbce89..d7ff29dd4 100644 --- a/internal/data/payments_test.go +++ b/internal/data/payments_test.go @@ -26,7 +26,6 @@ func Test_PaymentsModelGet(t *testing.T) { ctx := context.Background() asset := CreateAssetFixture(t, ctx, dbConnectionPool, "USDC", "GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVV") - country := CreateCountryFixture(t, ctx, dbConnectionPool, "FRA", "France") wallet1 := CreateWalletFixture(t, ctx, dbConnectionPool, "wallet1", "https://www.wallet.com", "www.wallet.com", "wallet1://") receiver := CreateReceiverFixture(t, ctx, dbConnectionPool, &Receiver{}) @@ -38,7 +37,6 @@ func Test_PaymentsModelGet(t *testing.T) { Status: DraftDisbursementStatus, Asset: asset, Wallet: wallet1, - Country: country, CreatedAt: time.Date(2022, 3, 21, 23, 40, 20, 1431, time.UTC), }) @@ -84,11 +82,10 @@ func Test_PaymentsModelGet(t *testing.T) { receiverWallet2 := CreateReceiverWalletFixture(t, ctx, dbConnectionPool, receiver.ID, wallet2.ID, DraftReceiversWalletStatus) disbursement2 := CreateDisbursementFixture(t, ctx, dbConnectionPool, &disbursementModel, &Disbursement{ - Name: "disbursement 2", - Status: DraftDisbursementStatus, - Asset: asset, - Wallet: wallet2, - Country: country, + Name: "disbursement 2", + Status: DraftDisbursementStatus, + Asset: asset, + Wallet: wallet2, }) stellarTransactionID, err := utils.RandomString(64) @@ -130,7 +127,6 @@ func Test_PaymentModelCount(t *testing.T) { ctx := context.Background() asset := CreateAssetFixture(t, ctx, dbConnectionPool, "USDC", "GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVV") - country := CreateCountryFixture(t, ctx, dbConnectionPool, "FRA", "France") wallet := CreateWalletFixture(t, ctx, dbConnectionPool, "wallet1", "https://www.wallet.com", "www.wallet.com", "wallet1://") receiver := CreateReceiverFixture(t, ctx, dbConnectionPool, &Receiver{}) @@ -138,19 +134,17 @@ func Test_PaymentModelCount(t *testing.T) { disbursementModel := DisbursementModel{dbConnectionPool: dbConnectionPool} disbursement1 := CreateDisbursementFixture(t, ctx, dbConnectionPool, &disbursementModel, &Disbursement{ - Name: "disbursement 1", - Status: DraftDisbursementStatus, - Asset: asset, - Wallet: wallet, - Country: country, + Name: "disbursement 1", + Status: DraftDisbursementStatus, + Asset: asset, + Wallet: wallet, }) disbursement2 := CreateDisbursementFixture(t, ctx, dbConnectionPool, &disbursementModel, &Disbursement{ - Name: "disbursement 2", - Status: DraftDisbursementStatus, - Asset: asset, - Wallet: wallet, - Country: country, + Name: "disbursement 2", + Status: DraftDisbursementStatus, + Asset: asset, + Wallet: wallet, }) paymentModel := PaymentModel{dbConnectionPool: dbConnectionPool} @@ -232,7 +226,6 @@ func Test_PaymentModelGetAll(t *testing.T) { ctx := context.Background() asset := CreateAssetFixture(t, ctx, dbConnectionPool, "USDC", "GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVV") - country := CreateCountryFixture(t, ctx, dbConnectionPool, "FRA", "France") wallet := CreateWalletFixture(t, ctx, dbConnectionPool, "wallet1", "https://www.wallet.com", "www.wallet.com", "wallet1://") receiver := CreateReceiverFixture(t, ctx, dbConnectionPool, &Receiver{}) @@ -240,19 +233,17 @@ func Test_PaymentModelGetAll(t *testing.T) { disbursementModel := DisbursementModel{dbConnectionPool: dbConnectionPool} disbursement1 := CreateDisbursementFixture(t, ctx, dbConnectionPool, &disbursementModel, &Disbursement{ - Name: "disbursement 1", - Status: DraftDisbursementStatus, - Asset: asset, - Wallet: wallet, - Country: country, + Name: "disbursement 1", + Status: DraftDisbursementStatus, + Asset: asset, + Wallet: wallet, }) disbursement2 := CreateDisbursementFixture(t, ctx, dbConnectionPool, &disbursementModel, &Disbursement{ - Name: "disbursement 2", - Status: DraftDisbursementStatus, - Asset: asset, - Wallet: wallet, - Country: country, + Name: "disbursement 2", + Status: DraftDisbursementStatus, + Asset: asset, + Wallet: wallet, }) paymentModel := PaymentModel{dbConnectionPool: dbConnectionPool} @@ -393,14 +384,12 @@ func Test_PaymentModelGetAll(t *testing.T) { DeleteAllPaymentsFixtures(t, ctx, dbConnectionPool) DeleteAllDisbursementFixtures(t, ctx, dbConnectionPool) - DeleteAllCountryFixtures(t, ctx, dbConnectionPool) DeleteAllAssetFixtures(t, ctx, dbConnectionPool) DeleteAllReceiverWalletsFixtures(t, ctx, dbConnectionPool) DeleteAllReceiversFixtures(t, ctx, dbConnectionPool) DeleteAllWalletFixtures(t, ctx, dbConnectionPool) usdc := CreateAssetFixture(t, ctx, dbConnectionPool, "USDC", "GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVV") - country := CreateCountryFixture(t, ctx, dbConnectionPool, "BRA", "Brazil") demoWallet := CreateWalletFixture(t, ctx, dbConnectionPool, "Demo Wallet", "https://demo-wallet.stellar.org", "https://demo-wallet.stellar.org", "demo-wallet-server.stellar.org") vibrantWallet := CreateWalletFixture(t, ctx, dbConnectionPool, "Vibrant Assist", "https://vibrantapp.com", "api-dev.vibrantapp.com", "https://vibrantapp.com/sdp-dev") @@ -409,19 +398,17 @@ func Test_PaymentModelGetAll(t *testing.T) { receiverVibrantWallet := CreateReceiverWalletFixture(t, ctx, dbConnectionPool, receiver.ID, vibrantWallet.ID, ReadyReceiversWalletStatus) disbursement1 := CreateDisbursementFixture(t, ctx, dbConnectionPool, models.Disbursements, &Disbursement{ - Name: "disbursement 1", - Status: ReadyDisbursementStatus, - Asset: usdc, - Wallet: demoWallet, - Country: country, + Name: "disbursement 1", + Status: ReadyDisbursementStatus, + Asset: usdc, + Wallet: demoWallet, }) disbursement2 := CreateDisbursementFixture(t, ctx, dbConnectionPool, models.Disbursements, &Disbursement{ - Name: "disbursement 2", - Status: ReadyDisbursementStatus, - Asset: usdc, - Wallet: vibrantWallet, - Country: country, + Name: "disbursement 2", + Status: ReadyDisbursementStatus, + Asset: usdc, + Wallet: vibrantWallet, }) demoWalletPayment := CreatePaymentFixture(t, ctx, dbConnectionPool, models.Payment, &Payment{ @@ -715,7 +702,6 @@ func Test_PaymentNewPaymentQuery(t *testing.T) { func Test_PaymentModelRetryFailedPayments(t *testing.T) { dbt := dbtest.Open(t) defer dbt.Close() - dbConnectionPool, err := db.OpenDBConnectionPool(dbt.DSN) require.NoError(t, err) defer dbConnectionPool.Close() @@ -725,15 +711,6 @@ func Test_PaymentModelRetryFailedPayments(t *testing.T) { models, err := NewModels(dbConnectionPool) require.NoError(t, err) - DeleteAllPaymentsFixtures(t, ctx, dbConnectionPool) - DeleteAllDisbursementFixtures(t, ctx, dbConnectionPool) - DeleteAllCountryFixtures(t, ctx, dbConnectionPool) - DeleteAllAssetFixtures(t, ctx, dbConnectionPool) - DeleteAllReceiverWalletsFixtures(t, ctx, dbConnectionPool) - DeleteAllReceiversFixtures(t, ctx, dbConnectionPool) - DeleteAllWalletFixtures(t, ctx, dbConnectionPool) - - country := CreateCountryFixture(t, ctx, dbConnectionPool, "BRA", "Brazil") wallet := CreateWalletFixture(t, ctx, dbConnectionPool, "Wallet", "https://www.wallet.com", "www.wallet.com", "wallet://") asset := CreateAssetFixture(t, ctx, dbConnectionPool, "USDC", "GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVV") @@ -741,7 +718,6 @@ func Test_PaymentModelRetryFailedPayments(t *testing.T) { receiverWallet := CreateReceiverWalletFixture(t, ctx, dbConnectionPool, receiver.ID, wallet.ID, ReadyReceiversWalletStatus) disbursement := CreateDisbursementFixture(t, ctx, dbConnectionPool, models.Disbursements, &Disbursement{ - Country: country, Wallet: wallet, Asset: asset, Status: ReadyDisbursementStatus, @@ -998,13 +974,11 @@ func Test_PaymentModelCancelPayment(t *testing.T) { DeleteAllPaymentsFixtures(t, ctx, dbConnectionPool) DeleteAllDisbursementFixtures(t, ctx, dbConnectionPool) - DeleteAllCountryFixtures(t, ctx, dbConnectionPool) DeleteAllAssetFixtures(t, ctx, dbConnectionPool) DeleteAllReceiverWalletsFixtures(t, ctx, dbConnectionPool) DeleteAllReceiversFixtures(t, ctx, dbConnectionPool) DeleteAllWalletFixtures(t, ctx, dbConnectionPool) - country := CreateCountryFixture(t, ctx, dbConnectionPool, "BRA", "Brazil") wallet := CreateWalletFixture(t, ctx, dbConnectionPool, "Wallet", "https://www.wallet.com", "www.wallet.com", "wallet://") asset := CreateAssetFixture(t, ctx, dbConnectionPool, "USDC", "GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVV") @@ -1012,7 +986,6 @@ func Test_PaymentModelCancelPayment(t *testing.T) { receiverWallet := CreateReceiverWalletFixture(t, ctx, dbConnectionPool, receiver.ID, wallet.ID, ReadyReceiversWalletStatus) disbursement := CreateDisbursementFixture(t, ctx, dbConnectionPool, models.Disbursements, &Disbursement{ - Country: country, Wallet: wallet, Asset: asset, Status: ReadyDisbursementStatus, @@ -1260,7 +1233,6 @@ func Test_PaymentModel_GetReadyByDisbursementID(t *testing.T) { models, err := NewModels(dbConnectionPool) require.NoError(t, err) - country := CreateCountryFixture(t, ctx, dbConnectionPool, "BRA", "Brazil") wallet := CreateWalletFixture(t, ctx, dbConnectionPool, "Wallet", "https://www.wallet.com", "www.wallet.com", "wallet://") asset := CreateAssetFixture(t, ctx, dbConnectionPool, "USDC", "GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVV") @@ -1271,7 +1243,6 @@ func Test_PaymentModel_GetReadyByDisbursementID(t *testing.T) { rw2 := CreateReceiverWalletFixture(t, ctx, dbConnectionPool, receiver2.ID, wallet.ID, ReadyReceiversWalletStatus) disbursement := CreateDisbursementFixture(t, ctx, dbConnectionPool, models.Disbursements, &Disbursement{ - Country: country, Wallet: wallet, Asset: asset, Status: StartedDisbursementStatus, @@ -1326,7 +1297,6 @@ func Test_PaymentModel_GetReadyByPaymentsID(t *testing.T) { models, err := NewModels(dbConnectionPool) require.NoError(t, err) - country := CreateCountryFixture(t, ctx, dbConnectionPool, "BRA", "Brazil") wallet := CreateWalletFixture(t, ctx, dbConnectionPool, "Wallet", "https://www.wallet.com", "www.wallet.com", "wallet://") asset := CreateAssetFixture(t, ctx, dbConnectionPool, "USDC", "GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVV") @@ -1337,7 +1307,6 @@ func Test_PaymentModel_GetReadyByPaymentsID(t *testing.T) { rw2 := CreateReceiverWalletFixture(t, ctx, dbConnectionPool, receiver2.ID, wallet.ID, ReadyReceiversWalletStatus) disbursement := CreateDisbursementFixture(t, ctx, dbConnectionPool, models.Disbursements, &Disbursement{ - Country: country, Wallet: wallet, Asset: asset, Status: StartedDisbursementStatus, @@ -1400,7 +1369,6 @@ func Test_PaymentModel_GetReadyByReceiverWalletID(t *testing.T) { models, err := NewModels(dbConnectionPool) require.NoError(t, err) - country := CreateCountryFixture(t, ctx, dbConnectionPool, "BRA", "Brazil") wallet := CreateWalletFixture(t, ctx, dbConnectionPool, "Wallet", "https://www.wallet.com", "www.wallet.com", "wallet://") asset := CreateAssetFixture(t, ctx, dbConnectionPool, "USDC", "GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVV") @@ -1411,7 +1379,6 @@ func Test_PaymentModel_GetReadyByReceiverWalletID(t *testing.T) { rw2 := CreateReceiverWalletFixture(t, ctx, dbConnectionPool, receiver2.ID, wallet.ID, ReadyReceiversWalletStatus) disbursement := CreateDisbursementFixture(t, ctx, dbConnectionPool, models.Disbursements, &Disbursement{ - Country: country, Wallet: wallet, Asset: asset, Status: StartedDisbursementStatus, @@ -1487,7 +1454,6 @@ func Test_PaymentModel_GetAllReadyToPatchCompletionAnchorTransactions(t *testing t.Run("doesn't get payments when receiver wallet is not registered", func(t *testing.T) { DeleteAllFixtures(t, ctx, dbConnectionPool) - country := CreateCountryFixture(t, ctx, dbConnectionPool, "BRA", "Brazil") wallet := CreateWalletFixture(t, ctx, dbConnectionPool, "Wallet", "https://www.wallet.com", "www.wallet.com", "wallet://") asset := CreateAssetFixture(t, ctx, dbConnectionPool, "USDC", "GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVV") @@ -1495,7 +1461,6 @@ func Test_PaymentModel_GetAllReadyToPatchCompletionAnchorTransactions(t *testing receiverWallet := CreateReceiverWalletFixture(t, ctx, dbConnectionPool, receiver.ID, wallet.ID, ReadyReceiversWalletStatus) disbursement := CreateDisbursementFixture(t, ctx, dbConnectionPool, models.Disbursements, &Disbursement{ - Country: country, Wallet: wallet, Asset: asset, Status: StartedDisbursementStatus, @@ -1522,7 +1487,6 @@ func Test_PaymentModel_GetAllReadyToPatchCompletionAnchorTransactions(t *testing t.Run("doesn't get payments not in the Success or Failed statuses", func(t *testing.T) { DeleteAllFixtures(t, ctx, dbConnectionPool) - country := CreateCountryFixture(t, ctx, dbConnectionPool, "BRA", "Brazil") wallet := CreateWalletFixture(t, ctx, dbConnectionPool, "Wallet", "https://www.wallet.com", "www.wallet.com", "wallet://") asset := CreateAssetFixture(t, ctx, dbConnectionPool, "USDC", "GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVV") @@ -1530,7 +1494,6 @@ func Test_PaymentModel_GetAllReadyToPatchCompletionAnchorTransactions(t *testing receiverWallet := CreateReceiverWalletFixture(t, ctx, dbConnectionPool, receiver.ID, wallet.ID, RegisteredReceiversWalletStatus) disbursement := CreateDisbursementFixture(t, ctx, dbConnectionPool, models.Disbursements, &Disbursement{ - Country: country, Wallet: wallet, Asset: asset, Status: StartedDisbursementStatus, @@ -1555,7 +1518,6 @@ func Test_PaymentModel_GetAllReadyToPatchCompletionAnchorTransactions(t *testing t.Run("gets only payments in the Success or Failed statuses", func(t *testing.T) { DeleteAllFixtures(t, ctx, dbConnectionPool) - country := CreateCountryFixture(t, ctx, dbConnectionPool, "BRA", "Brazil") wallet := CreateWalletFixture(t, ctx, dbConnectionPool, "Wallet", "https://www.wallet.com", "www.wallet.com", "wallet://") asset := CreateAssetFixture(t, ctx, dbConnectionPool, "USDC", "GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVV") @@ -1565,7 +1527,6 @@ func Test_PaymentModel_GetAllReadyToPatchCompletionAnchorTransactions(t *testing receiverWallet2 := CreateReceiverWalletFixture(t, ctx, dbConnectionPool, receiver2.ID, wallet.ID, RegisteredReceiversWalletStatus) disbursement := CreateDisbursementFixture(t, ctx, dbConnectionPool, models.Disbursements, &Disbursement{ - Country: country, Wallet: wallet, Asset: asset, Status: StartedDisbursementStatus, @@ -1608,7 +1569,6 @@ func Test_PaymentModel_GetAllReadyToPatchCompletionAnchorTransactions(t *testing t.Run("gets more than one payment when a receiver has payments in the Success or Failed statuses for the same wallet provider", func(t *testing.T) { DeleteAllFixtures(t, ctx, dbConnectionPool) - country := CreateCountryFixture(t, ctx, dbConnectionPool, "BRA", "Brazil") wallet := CreateWalletFixture(t, ctx, dbConnectionPool, "Wallet", "https://www.wallet.com", "www.wallet.com", "wallet://") asset := CreateAssetFixture(t, ctx, dbConnectionPool, "USDC", "GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVV") @@ -1616,7 +1576,6 @@ func Test_PaymentModel_GetAllReadyToPatchCompletionAnchorTransactions(t *testing receiverWallet := CreateReceiverWalletFixture(t, ctx, dbConnectionPool, receiver.ID, wallet.ID, RegisteredReceiversWalletStatus) disbursement1 := CreateDisbursementFixture(t, ctx, dbConnectionPool, models.Disbursements, &Disbursement{ - Country: country, Wallet: wallet, Asset: asset, Status: StartedDisbursementStatus, @@ -1624,7 +1583,6 @@ func Test_PaymentModel_GetAllReadyToPatchCompletionAnchorTransactions(t *testing }) disbursement2 := CreateDisbursementFixture(t, ctx, dbConnectionPool, models.Disbursements, &Disbursement{ - Country: country, Wallet: wallet, Asset: asset, Status: StartedDisbursementStatus, @@ -1667,7 +1625,6 @@ func Test_PaymentModel_GetAllReadyToPatchCompletionAnchorTransactions(t *testing t.Run("gets more than one payment when a receiver has payments for more than one wallet provider", func(t *testing.T) { DeleteAllFixtures(t, ctx, dbConnectionPool) - country := CreateCountryFixture(t, ctx, dbConnectionPool, "BRA", "Brazil") wallet1 := CreateWalletFixture(t, ctx, dbConnectionPool, "Wallet1", "https://www.wallet1.com", "www.wallet1.com", "wallet1://") wallet2 := CreateWalletFixture(t, ctx, dbConnectionPool, "Wallet2", "https://www.wallet2.com", "www.wallet2.com", "wallet2://") asset := CreateAssetFixture(t, ctx, dbConnectionPool, "USDC", "GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVV") @@ -1677,7 +1634,6 @@ func Test_PaymentModel_GetAllReadyToPatchCompletionAnchorTransactions(t *testing receiverWallet2 := CreateReceiverWalletFixture(t, ctx, dbConnectionPool, receiver.ID, wallet2.ID, RegisteredReceiversWalletStatus) disbursement1 := CreateDisbursementFixture(t, ctx, dbConnectionPool, models.Disbursements, &Disbursement{ - Country: country, Wallet: wallet1, Asset: asset, Status: StartedDisbursementStatus, @@ -1685,7 +1641,6 @@ func Test_PaymentModel_GetAllReadyToPatchCompletionAnchorTransactions(t *testing }) disbursement2 := CreateDisbursementFixture(t, ctx, dbConnectionPool, models.Disbursements, &Disbursement{ - Country: country, Wallet: wallet2, Asset: asset, Status: StartedDisbursementStatus, @@ -1742,7 +1697,6 @@ func Test_PaymentModel_GetAllReadyToPatchCompletionAnchorTransactions(t *testing t.Run("doesn't return error when receiver wallet has the stellar_memo and stellar_memo_type null", func(t *testing.T) { DeleteAllFixtures(t, ctx, dbConnectionPool) - country := CreateCountryFixture(t, ctx, dbConnectionPool, "BRA", "Brazil") wallet := CreateWalletFixture(t, ctx, dbConnectionPool, "Wallet1", "https://www.wallet1.com", "www.wallet1.com", "wallet1://") asset := CreateAssetFixture(t, ctx, dbConnectionPool, "USDC", "GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVV") @@ -1750,7 +1704,6 @@ func Test_PaymentModel_GetAllReadyToPatchCompletionAnchorTransactions(t *testing receiverWallet := CreateReceiverWalletFixture(t, ctx, dbConnectionPool, receiver.ID, wallet.ID, RegisteredReceiversWalletStatus) disbursement := CreateDisbursementFixture(t, ctx, dbConnectionPool, models.Disbursements, &Disbursement{ - Country: country, Wallet: wallet, Asset: asset, Status: StartedDisbursementStatus, @@ -1889,13 +1842,11 @@ func Test_PaymentModel_UpdateStatus(t *testing.T) { models, err := NewModels(dbConnectionPool) require.NoError(t, err) asset := CreateAssetFixture(t, ctx, dbConnectionPool, "USDC", "GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVV") - country := CreateCountryFixture(t, ctx, dbConnectionPool, "FRA", "France") wallet := CreateWalletFixture(t, ctx, dbConnectionPool, "wallet1", "https://www.wallet.com", "www.wallet.com", "wallet1://") disbursement := CreateDisbursementFixture(t, ctx, dbConnectionPool, models.Disbursements, &Disbursement{ - Country: country, - Wallet: wallet, - Status: ReadyDisbursementStatus, - Asset: asset, + Wallet: wallet, + Status: ReadyDisbursementStatus, + Asset: asset, }) receiverReady := CreateReceiverFixture(t, ctx, dbConnectionPool, &Receiver{}) rwReady := CreateReceiverWalletFixture(t, ctx, dbConnectionPool, receiverReady.ID, wallet.ID, ReadyReceiversWalletStatus) diff --git a/internal/data/receivers_test.go b/internal/data/receivers_test.go index 098ad3ec2..eec8c4d21 100644 --- a/internal/data/receivers_test.go +++ b/internal/data/receivers_test.go @@ -28,7 +28,6 @@ func Test_ReceiversModel_Get(t *testing.T) { ctx := context.Background() asset := CreateAssetFixture(t, ctx, dbConnectionPool, "USDC", "GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVV") - country := CreateCountryFixture(t, ctx, dbConnectionPool, "FRA", "France") wallet := CreateWalletFixture(t, ctx, dbConnectionPool, "wallet", "https://www.wallet.com", "www.wallet.com", "wallet1://") receiver := CreateReceiverFixture(t, ctx, dbConnectionPool, &Receiver{}) @@ -36,10 +35,9 @@ func Test_ReceiversModel_Get(t *testing.T) { disbursementModel := DisbursementModel{dbConnectionPool: dbConnectionPool} disbursement := Disbursement{ - Status: DraftDisbursementStatus, - Asset: asset, - Country: country, - Wallet: wallet, + Status: DraftDisbursementStatus, + Asset: asset, + Wallet: wallet, } stellarTransactionID, err := utils.RandomString(64) @@ -929,7 +927,6 @@ func Test_DeleteByContactInfo(t *testing.T) { }) // 1. Create country, asset, and wallet (won't be deleted) - country := CreateCountryFixture(t, ctx, dbConnectionPool, "ATL", "Atlantis") asset := CreateAssetFixture(t, ctx, dbConnectionPool, "FOO1", "GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVV") wallet := CreateWalletFixture(t, ctx, dbConnectionPool, "walletA", "https://www.a.com", "www.a.com", "a://") @@ -951,10 +948,9 @@ func Test_DeleteByContactInfo(t *testing.T) { CreatedAt: time.Date(2023, 1, 10, 23, 40, 20, 1000, time.UTC), }) disbursement1 := CreateDisbursementFixture(t, ctx, dbConnectionPool, models.Disbursements, &Disbursement{ - Country: country, - Wallet: wallet, - Status: ReadyDisbursementStatus, - Asset: asset, + Wallet: wallet, + Status: ReadyDisbursementStatus, + Asset: asset, }) paymentX1 := CreatePaymentFixture(t, ctx, dbConnectionPool, models.Payment, &Payment{ ReceiverWallet: receiverWalletX, @@ -982,10 +978,9 @@ func Test_DeleteByContactInfo(t *testing.T) { CreatedAt: time.Date(2023, 1, 10, 23, 40, 20, 1000, time.UTC), }) disbursement2 := CreateDisbursementFixture(t, ctx, dbConnectionPool, models.Disbursements, &Disbursement{ - Country: country, - Wallet: wallet, - Status: ReadyDisbursementStatus, - Asset: asset, + Wallet: wallet, + Status: ReadyDisbursementStatus, + Asset: asset, }) paymentY2 := CreatePaymentFixture(t, ctx, dbConnectionPool, models.Payment, &Payment{ ReceiverWallet: receiverWalletY, diff --git a/internal/data/receivers_wallet_test.go b/internal/data/receivers_wallet_test.go index e8ef538be..f2a670009 100644 --- a/internal/data/receivers_wallet_test.go +++ b/internal/data/receivers_wallet_test.go @@ -65,7 +65,6 @@ func Test_ReceiversWalletModelGetWithReceiverId(t *testing.T) { }) asset := CreateAssetFixture(t, ctx, dbConnectionPool, "USDC", "GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVV") - country := CreateCountryFixture(t, ctx, dbConnectionPool, "FRA", "France") wallet1 := CreateWalletFixture(t, ctx, dbConnectionPool, "wallet", "https://www.wallet.com", "www.wallet.com", "wallet1://") receiverWallet1 := CreateReceiverWalletFixture(t, ctx, dbConnectionPool, receiver.ID, wallet1.ID, DraftReceiversWalletStatus) @@ -92,9 +91,8 @@ func Test_ReceiversWalletModelGetWithReceiverId(t *testing.T) { disbursementModel := DisbursementModel{dbConnectionPool: dbConnectionPool} disbursement := Disbursement{ - Status: DraftDisbursementStatus, - Asset: asset, - Country: country, + Status: DraftDisbursementStatus, + Asset: asset, } stellarTransactionID, err := utils.RandomString(64) diff --git a/internal/data/roles.go b/internal/data/roles.go index b24414690..d8f03f736 100644 --- a/internal/data/roles.go +++ b/internal/data/roles.go @@ -20,7 +20,7 @@ const ( OwnerUserRole UserRole = "owner" // FinancialControllerUserRole has the same permissions as the OwnerUserRole except for user management. FinancialControllerUserRole UserRole = "financial_controller" - // DeveloperUserRole has only configuration permissions. (wallets, assets, countries management. Also, statistics access permission) + // DeveloperUserRole has only configuration permissions. (wallets, assets management. Also, statistics access permission) DeveloperUserRole UserRole = "developer" // BusinessUserRole has read-only permissions - except for user management that they can't read any data. BusinessUserRole UserRole = "business" diff --git a/internal/data/wallets_test.go b/internal/data/wallets_test.go index 7ffc34360..225e3011c 100644 --- a/internal/data/wallets_test.go +++ b/internal/data/wallets_test.go @@ -251,7 +251,7 @@ func Test_WalletModelInsert(t *testing.T) { }) // Ensure that only insert one of each entry - t.Run("duplicated countries codes and assets IDs", func(t *testing.T) { + t.Run("duplicated assets IDs", func(t *testing.T) { DeleteAllWalletFixtures(t, ctx, dbConnectionPool) name := "test_wallet" diff --git a/internal/integrationtests/integration_tests.go b/internal/integrationtests/integration_tests.go index 8c55ac349..b687c665e 100644 --- a/internal/integrationtests/integration_tests.go +++ b/internal/integrationtests/integration_tests.go @@ -115,7 +115,7 @@ func NewIntegrationTestsService(opts IntegrationTestsOpts) (*IntegrationTestsSer return it, nil } -func (it *IntegrationTestsService) initServices(ctx context.Context, opts IntegrationTestsOpts) { +func (it *IntegrationTestsService) initServices(_ context.Context, opts IntegrationTestsOpts) { // initialize default testnet horizon client it.horizonClient = horizonclient.DefaultTestNetClient @@ -176,7 +176,6 @@ func (it *IntegrationTestsService) StartIntegrationTests(ctx context.Context, op log.Ctx(ctx).Info("Creating disbursement using server API") disbursement, err := it.serverAPI.CreateDisbursement(ctx, authToken, &httphandler.PostDisbursementRequest{ Name: opts.DisbursementName, - CountryCode: "USA", WalletID: wallet.ID, AssetID: asset.ID, VerificationField: data.VerificationTypeDateOfBirth, diff --git a/internal/integrationtests/server_api_test.go b/internal/integrationtests/server_api_test.go index a0ddec6ba..495878680 100644 --- a/internal/integrationtests/server_api_test.go +++ b/internal/integrationtests/server_api_test.go @@ -103,10 +103,9 @@ func Test_CreateDisbursement(t *testing.T) { } reqBody := &httphandler.PostDisbursementRequest{ - Name: "mockDisbursement", - CountryCode: "USA", - WalletID: "123", - AssetID: "890", + Name: "mockDisbursement", + WalletID: "123", + AssetID: "890", } t.Run("error calling httpClient.Do", func(t *testing.T) { diff --git a/internal/integrationtests/validations_test.go b/internal/integrationtests/validations_test.go index c94e76f2a..864700ba9 100644 --- a/internal/integrationtests/validations_test.go +++ b/internal/integrationtests/validations_test.go @@ -30,16 +30,14 @@ func Test_validationAfterProcessDisbursement(t *testing.T) { }) asset := data.CreateAssetFixture(t, ctx, dbConnectionPool, "USDC", "GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVV") - country := data.CreateCountryFixture(t, ctx, dbConnectionPool, "FRA", "France") wallet := data.CreateWalletFixture(t, ctx, dbConnectionPool, "wallet1", "https://www.wallet.com", "www.wallet.com", "wallet1://") t.Run("invalid disbursement status", func(t *testing.T) { invalidDisbursement := data.CreateDisbursementFixture(t, ctx, dbConnectionPool, models.Disbursements, &data.Disbursement{ - Name: "Invalid Disbursement", - Status: data.CompletedDisbursementStatus, - Asset: asset, - Wallet: wallet, - Country: country, + Name: "Invalid Disbursement", + Status: data.CompletedDisbursementStatus, + Asset: asset, + Wallet: wallet, }) err = validateExpectationsAfterProcessDisbursement(ctx, invalidDisbursement.ID, models, dbConnectionPool) @@ -47,11 +45,10 @@ func Test_validationAfterProcessDisbursement(t *testing.T) { }) disbursement := data.CreateDisbursementFixture(t, ctx, dbConnectionPool, models.Disbursements, &data.Disbursement{ - Name: "disbursement 1", - Status: data.ReadyDisbursementStatus, - Asset: asset, - Wallet: wallet, - Country: country, + Name: "disbursement 1", + Status: data.ReadyDisbursementStatus, + Asset: asset, + Wallet: wallet, }) t.Run("disbursement receivers not found", func(t *testing.T) { @@ -135,16 +132,14 @@ func Test_validationAfterStartDisbursement(t *testing.T) { }) asset := data.CreateAssetFixture(t, ctx, dbConnectionPool, "USDC", "GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVV") - country := data.CreateCountryFixture(t, ctx, dbConnectionPool, "FRA", "France") wallet := data.CreateWalletFixture(t, ctx, dbConnectionPool, "wallet1", "https://www.wallet.com", "www.wallet.com", "wallet1://") t.Run("invalid disbursement status", func(t *testing.T) { invalidDisbursement := data.CreateDisbursementFixture(t, ctx, dbConnectionPool, models.Disbursements, &data.Disbursement{ - Name: "Invalid Disbursement", - Status: data.CompletedDisbursementStatus, - Asset: asset, - Wallet: wallet, - Country: country, + Name: "Invalid Disbursement", + Status: data.CompletedDisbursementStatus, + Asset: asset, + Wallet: wallet, }) err = validateExpectationsAfterStartDisbursement(ctx, invalidDisbursement.ID, models, dbConnectionPool) @@ -152,11 +147,10 @@ func Test_validationAfterStartDisbursement(t *testing.T) { }) disbursement := data.CreateDisbursementFixture(t, ctx, dbConnectionPool, models.Disbursements, &data.Disbursement{ - Name: "disbursement 1", - Status: data.StartedDisbursementStatus, - Asset: asset, - Wallet: wallet, - Country: country, + Name: "disbursement 1", + Status: data.StartedDisbursementStatus, + Asset: asset, + Wallet: wallet, }) t.Run("disbursement receivers not found", func(t *testing.T) { diff --git a/internal/monitor/monitor_labels.go b/internal/monitor/monitor_labels.go index f34cb775e..f220549a1 100644 --- a/internal/monitor/monitor_labels.go +++ b/internal/monitor/monitor_labels.go @@ -11,16 +11,14 @@ type DBQueryLabels struct { } type DisbursementLabels struct { - Asset string - Country string - Wallet string + Asset string + Wallet string } func (d DisbursementLabels) ToMap() map[string]string { return map[string]string{ - "asset": d.Asset, - "country": d.Country, - "wallet": d.Wallet, + "asset": d.Asset, + "wallet": d.Wallet, } } diff --git a/internal/monitor/prometheus_client_test.go b/internal/monitor/prometheus_client_test.go index c475fcec2..0a78c2935 100644 --- a/internal/monitor/prometheus_client_test.go +++ b/internal/monitor/prometheus_client_test.go @@ -166,9 +166,8 @@ func Test_PrometheusClient_MonitorCounters(t *testing.T) { t.Run("disbursements counter metric", func(t *testing.T) { labels := DisbursementLabels{ - Asset: "USDC", - Country: "UKR", - Wallet: "Mock Wallet", + Asset: "USDC", + Wallet: "Mock Wallet", } mPrometheusClient.MonitorCounters(DisbursementsCounterTag, labels.ToMap()) @@ -185,7 +184,7 @@ func Test_PrometheusClient_MonitorCounters(t *testing.T) { assert.NotEmpty(t, data) body := string(data) - metric := `sdp_business_disbursements_counter{asset="USDC",country="UKR",wallet="Mock Wallet"} 1` + metric := `sdp_business_disbursements_counter{asset="USDC",wallet="Mock Wallet"} 1` assert.Contains(t, body, metric) diff --git a/internal/monitor/prometheus_metrics.go b/internal/monitor/prometheus_metrics.go index 91cac7220..2f7eab541 100644 --- a/internal/monitor/prometheus_metrics.go +++ b/internal/monitor/prometheus_metrics.go @@ -72,7 +72,7 @@ var CounterVecMetrics = map[MetricTag]*prometheus.CounterVec{ Namespace: "sdp", Subsystem: "business", Name: string(DisbursementsCounterTag), Help: "Disbursements Counter", }, - []string{"asset", "country", "wallet"}, + []string{"asset", "wallet"}, ), CircleAPIRequestsTotalTag: prometheus.NewCounterVec(prometheus.CounterOpts{ Namespace: "sdp", Subsystem: "circle", Name: string(CircleAPIRequestsTotalTag), diff --git a/internal/scheduler/jobs/patch_anchor_platform_transactions_job_test.go b/internal/scheduler/jobs/patch_anchor_platform_transactions_job_test.go index b0366454a..bc6667c2e 100644 --- a/internal/scheduler/jobs/patch_anchor_platform_transactions_job_test.go +++ b/internal/scheduler/jobs/patch_anchor_platform_transactions_job_test.go @@ -137,7 +137,6 @@ func Test_PatchAnchorPlatformTransactionsCompletionJob_Execute(t *testing.T) { data.DeleteAllFixtures(t, ctx, dbConnectionPool) - country := data.CreateCountryFixture(t, ctx, dbConnectionPool, "BRA", "Brazil") wallet := data.CreateWalletFixture(t, ctx, dbConnectionPool, "Wallet", "https://www.wallet.com", "www.wallet.com", "wallet://") asset := data.CreateAssetFixture(t, ctx, dbConnectionPool, "USDC", "GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVV") @@ -145,7 +144,6 @@ func Test_PatchAnchorPlatformTransactionsCompletionJob_Execute(t *testing.T) { receiverWallet := data.CreateReceiverWalletFixture(t, ctx, dbConnectionPool, receiver.ID, wallet.ID, data.RegisteredReceiversWalletStatus) disbursement := data.CreateDisbursementFixture(t, ctx, dbConnectionPool, models.Disbursements, &data.Disbursement{ - Country: country, Wallet: wallet, Asset: asset, Status: data.StartedDisbursementStatus, diff --git a/internal/scheduler/jobs/send_receiver_wallets_sms_invitation_job_test.go b/internal/scheduler/jobs/send_receiver_wallets_sms_invitation_job_test.go index b0637880c..2500212d8 100644 --- a/internal/scheduler/jobs/send_receiver_wallets_sms_invitation_job_test.go +++ b/internal/scheduler/jobs/send_receiver_wallets_sms_invitation_job_test.go @@ -119,7 +119,6 @@ func Test_SendReceiverWalletsSMSInvitationJob(t *testing.T) { func Test_SendReceiverWalletsSMSInvitationJob_Execute(t *testing.T) { dbt := dbtest.Open(t) defer dbt.Close() - dbConnectionPool, err := db.OpenDBConnectionPool(dbt.DSN) require.NoError(t, err) defer dbConnectionPool.Close() @@ -138,126 +137,113 @@ func Test_SendReceiverWalletsSMSInvitationJob_Execute(t *testing.T) { stellarSecretKey := "SBUSPEKAZKLZSWHRSJ2HWDZUK6I3IVDUWA7JJZSGBLZ2WZIUJI7FPNB5" var maxInvitationSMSResendAttempts int64 = 3 - t.Run("executes the service successfully", func(t *testing.T) { - messageDispatcherMock := message.NewMockMessageDispatcher(t) - crashTrackerClientMock := &crashtracker.MockCrashTrackerClient{} - - s, err := services.NewSendReceiverWalletInviteService( - models, - messageDispatcherMock, - stellarSecretKey, - maxInvitationSMSResendAttempts, - crashTrackerClientMock, - ) - require.NoError(t, err) - - data.DeleteAllCountryFixtures(t, ctx, dbConnectionPool) - data.DeleteAllAssetFixtures(t, ctx, dbConnectionPool) - data.DeleteAllDisbursementFixtures(t, ctx, dbConnectionPool) - data.ClearAndCreateWalletFixtures(t, ctx, dbConnectionPool) - data.DeleteAllMessagesFixtures(t, ctx, dbConnectionPool) - data.DeleteAllReceiverWalletsFixtures(t, ctx, dbConnectionPool) - data.DeleteAllReceiversFixtures(t, ctx, dbConnectionPool) - - country := data.CreateCountryFixture(t, ctx, dbConnectionPool, "ATL", "Atlantis") - - wallet1 := data.CreateWalletFixture(t, ctx, dbConnectionPool, "Wallet1", "https://wallet1.com", "www.wallet1.com", "wallet1://sdp") - wallet2 := data.CreateWalletFixture(t, ctx, dbConnectionPool, "Wallet2", "https://wallet2.com", "www.wallet2.com", "wallet2://sdp") - - asset1 := data.CreateAssetFixture(t, ctx, dbConnectionPool, "FOO1", "GCKGCKZ2PFSCRQXREJMTHAHDMOZQLS2R4V5LZ6VLU53HONH5FI6ACBSX") - asset2 := data.CreateAssetFixture(t, ctx, dbConnectionPool, "FOO2", "GCKGCKZ2PFSCRQXREJMTHAHDMOZQLS2R4V5LZ6VLU53HONH5FI6ACBSX") - - receiver1 := data.CreateReceiverFixture(t, ctx, dbConnectionPool, &data.Receiver{}) - receiver2 := data.CreateReceiverFixture(t, ctx, dbConnectionPool, &data.Receiver{}) - - disbursement1 := data.CreateDisbursementFixture(t, ctx, dbConnectionPool, models.Disbursements, &data.Disbursement{ - Country: country, - Wallet: wallet1, - Status: data.ReadyDisbursementStatus, - Asset: asset1, - }) - - disbursement2 := data.CreateDisbursementFixture(t, ctx, dbConnectionPool, models.Disbursements, &data.Disbursement{ - Country: country, - Wallet: wallet2, - Status: data.ReadyDisbursementStatus, - Asset: asset2, - }) - - rec1RW := data.CreateReceiverWalletFixture(t, ctx, dbConnectionPool, receiver1.ID, wallet1.ID, data.ReadyReceiversWalletStatus) - data.CreateReceiverWalletFixture(t, ctx, dbConnectionPool, receiver1.ID, wallet2.ID, data.RegisteredReceiversWalletStatus) - - rec2RW := data.CreateReceiverWalletFixture(t, ctx, dbConnectionPool, receiver2.ID, wallet2.ID, data.ReadyReceiversWalletStatus) - - _ = data.CreatePaymentFixture(t, ctx, dbConnectionPool, models.Payment, &data.Payment{ - Status: data.ReadyPaymentStatus, - Disbursement: disbursement1, - Asset: *asset1, - ReceiverWallet: rec1RW, - Amount: "1", - }) - - _ = data.CreatePaymentFixture(t, ctx, dbConnectionPool, models.Payment, &data.Payment{ - Status: data.ReadyPaymentStatus, - Disbursement: disbursement2, - Asset: *asset2, - ReceiverWallet: rec2RW, - Amount: "1", - }) - - walletDeepLink1 := services.WalletDeepLink{ - DeepLink: wallet1.DeepLinkSchema, - TenantBaseURL: tenantBaseURL, - OrganizationName: "MyCustomAid", - AssetCode: asset1.Code, - AssetIssuer: asset1.Issuer, - } - deepLink1, err := walletDeepLink1.GetSignedRegistrationLink(stellarSecretKey) - require.NoError(t, err) - contentWallet1 := fmt.Sprintf("You have a payment waiting for you from the MyCustomAid. Click %s to register.", deepLink1) - titleWallet1 := "You have a payment waiting for you from " + walletDeepLink1.OrganizationName - - walletDeepLink2 := services.WalletDeepLink{ - DeepLink: wallet2.DeepLinkSchema, - TenantBaseURL: tenantBaseURL, - OrganizationName: "MyCustomAid", - AssetCode: asset2.Code, - AssetIssuer: asset2.Issuer, - } - deepLink2, err := walletDeepLink2.GetSignedRegistrationLink(stellarSecretKey) - require.NoError(t, err) - contentWallet2 := fmt.Sprintf("You have a payment waiting for you from the MyCustomAid. Click %s to register.", deepLink2) - titleWallet2 := "You have a payment waiting for you from " + walletDeepLink2.OrganizationName - - mockErr := errors.New("unexpected error") - messageDispatcherMock. - On("SendMessage", mock.Anything, message.Message{ - ToPhoneNumber: receiver1.PhoneNumber, - ToEmail: receiver1.Email, - Body: contentWallet1, - Title: titleWallet1, - }, []message.MessageChannel{message.MessageChannelSMS, message.MessageChannelEmail}). - Return(message.MessengerTypeTwilioSMS, mockErr). - Once(). - On("SendMessage", mock.Anything, message.Message{ - ToPhoneNumber: receiver2.PhoneNumber, - ToEmail: receiver2.Email, - Body: contentWallet2, - Title: titleWallet2, - }, []message.MessageChannel{message.MessageChannelSMS, message.MessageChannelEmail}). - Return(message.MessengerTypeTwilioSMS, nil). - Once() - - mockMsg := fmt.Sprintf( - "error sending message to receiver ID %s for receiver wallet ID %s using messenger type %s", - receiver1.ID, rec1RW.ID, message.MessengerTypeTwilioSMS, - ) - crashTrackerClientMock.On("LogAndReportErrors", ctx, mockErr, mockMsg).Once() - - err = s.SendInvite(ctx) - require.NoError(t, err) - - q := ` + messageDispatcherMock := message.NewMockMessageDispatcher(t) + crashTrackerClientMock := &crashtracker.MockCrashTrackerClient{} + + s, err := services.NewSendReceiverWalletInviteService( + models, + messageDispatcherMock, + stellarSecretKey, + maxInvitationSMSResendAttempts, + crashTrackerClientMock, + ) + require.NoError(t, err) + + wallet1 := data.CreateWalletFixture(t, ctx, dbConnectionPool, "Wallet1", "https://wallet1.com", "www.wallet1.com", "wallet1://sdp") + wallet2 := data.CreateWalletFixture(t, ctx, dbConnectionPool, "Wallet2", "https://wallet2.com", "www.wallet2.com", "wallet2://sdp") + + asset1 := data.CreateAssetFixture(t, ctx, dbConnectionPool, "FOO1", "GCKGCKZ2PFSCRQXREJMTHAHDMOZQLS2R4V5LZ6VLU53HONH5FI6ACBSX") + asset2 := data.CreateAssetFixture(t, ctx, dbConnectionPool, "FOO2", "GCKGCKZ2PFSCRQXREJMTHAHDMOZQLS2R4V5LZ6VLU53HONH5FI6ACBSX") + + receiver1 := data.CreateReceiverFixture(t, ctx, dbConnectionPool, &data.Receiver{}) + receiver2 := data.CreateReceiverFixture(t, ctx, dbConnectionPool, &data.Receiver{}) + + disbursement1 := data.CreateDisbursementFixture(t, ctx, dbConnectionPool, models.Disbursements, &data.Disbursement{ + Wallet: wallet1, + Status: data.ReadyDisbursementStatus, + Asset: asset1, + }) + + disbursement2 := data.CreateDisbursementFixture(t, ctx, dbConnectionPool, models.Disbursements, &data.Disbursement{ + Wallet: wallet2, + Status: data.ReadyDisbursementStatus, + Asset: asset2, + }) + + rec1RW := data.CreateReceiverWalletFixture(t, ctx, dbConnectionPool, receiver1.ID, wallet1.ID, data.ReadyReceiversWalletStatus) + data.CreateReceiverWalletFixture(t, ctx, dbConnectionPool, receiver1.ID, wallet2.ID, data.RegisteredReceiversWalletStatus) + + rec2RW := data.CreateReceiverWalletFixture(t, ctx, dbConnectionPool, receiver2.ID, wallet2.ID, data.ReadyReceiversWalletStatus) + + _ = data.CreatePaymentFixture(t, ctx, dbConnectionPool, models.Payment, &data.Payment{ + Status: data.ReadyPaymentStatus, + Disbursement: disbursement1, + Asset: *asset1, + ReceiverWallet: rec1RW, + Amount: "1", + }) + + _ = data.CreatePaymentFixture(t, ctx, dbConnectionPool, models.Payment, &data.Payment{ + Status: data.ReadyPaymentStatus, + Disbursement: disbursement2, + Asset: *asset2, + ReceiverWallet: rec2RW, + Amount: "1", + }) + + walletDeepLink1 := services.WalletDeepLink{ + DeepLink: wallet1.DeepLinkSchema, + TenantBaseURL: tenantBaseURL, + OrganizationName: "MyCustomAid", + AssetCode: asset1.Code, + AssetIssuer: asset1.Issuer, + } + deepLink1, err := walletDeepLink1.GetSignedRegistrationLink(stellarSecretKey) + require.NoError(t, err) + contentWallet1 := fmt.Sprintf("You have a payment waiting for you from the MyCustomAid. Click %s to register.", deepLink1) + titleWallet1 := "You have a payment waiting for you from " + walletDeepLink1.OrganizationName + + walletDeepLink2 := services.WalletDeepLink{ + DeepLink: wallet2.DeepLinkSchema, + TenantBaseURL: tenantBaseURL, + OrganizationName: "MyCustomAid", + AssetCode: asset2.Code, + AssetIssuer: asset2.Issuer, + } + deepLink2, err := walletDeepLink2.GetSignedRegistrationLink(stellarSecretKey) + require.NoError(t, err) + contentWallet2 := fmt.Sprintf("You have a payment waiting for you from the MyCustomAid. Click %s to register.", deepLink2) + titleWallet2 := "You have a payment waiting for you from " + walletDeepLink2.OrganizationName + + mockErr := errors.New("unexpected error") + messageDispatcherMock. + On("SendMessage", mock.Anything, message.Message{ + ToPhoneNumber: receiver1.PhoneNumber, + ToEmail: receiver1.Email, + Body: contentWallet1, + Title: titleWallet1, + }, []message.MessageChannel{message.MessageChannelSMS, message.MessageChannelEmail}). + Return(message.MessengerTypeTwilioSMS, mockErr). + Once(). + On("SendMessage", mock.Anything, message.Message{ + ToPhoneNumber: receiver2.PhoneNumber, + ToEmail: receiver2.Email, + Body: contentWallet2, + Title: titleWallet2, + }, []message.MessageChannel{message.MessageChannelSMS, message.MessageChannelEmail}). + Return(message.MessengerTypeTwilioSMS, nil). + Once() + + mockMsg := fmt.Sprintf( + "error sending message to receiver ID %s for receiver wallet ID %s using messenger type %s", + receiver1.ID, rec1RW.ID, message.MessengerTypeTwilioSMS, + ) + crashTrackerClientMock.On("LogAndReportErrors", ctx, mockErr, mockMsg).Once() + + err = s.SendInvite(ctx) + require.NoError(t, err) + + q := ` SELECT type, status, receiver_id, wallet_id, receiver_wallet_id, title_encrypted, text_encrypted, status_history @@ -266,36 +252,35 @@ func Test_SendReceiverWalletsSMSInvitationJob_Execute(t *testing.T) { WHERE receiver_id = $1 AND wallet_id = $2 AND receiver_wallet_id = $3 ` - var msg data.Message - err = dbConnectionPool.GetContext(ctx, &msg, q, receiver1.ID, wallet1.ID, rec1RW.ID) - require.NoError(t, err) - - assert.Equal(t, message.MessengerTypeTwilioSMS, msg.Type) - assert.Equal(t, receiver1.ID, msg.ReceiverID) - assert.Equal(t, wallet1.ID, msg.WalletID) - assert.Equal(t, rec1RW.ID, *msg.ReceiverWalletID) - assert.Equal(t, data.FailureMessageStatus, msg.Status) - assert.Equal(t, titleWallet1, msg.TitleEncrypted) - assert.Equal(t, contentWallet1, msg.TextEncrypted) - assert.Len(t, msg.StatusHistory, 2) - assert.Equal(t, data.PendingMessageStatus, msg.StatusHistory[0].Status) - assert.Equal(t, data.FailureMessageStatus, msg.StatusHistory[1].Status) - assert.Nil(t, msg.AssetID) - - msg = data.Message{} - err = dbConnectionPool.GetContext(ctx, &msg, q, receiver2.ID, wallet2.ID, rec2RW.ID) - require.NoError(t, err) - - assert.Equal(t, message.MessengerTypeTwilioSMS, msg.Type) - assert.Equal(t, receiver2.ID, msg.ReceiverID) - assert.Equal(t, wallet2.ID, msg.WalletID) - assert.Equal(t, rec2RW.ID, *msg.ReceiverWalletID) - assert.Equal(t, data.SuccessMessageStatus, msg.Status) - assert.Equal(t, titleWallet2, msg.TitleEncrypted) - assert.Equal(t, contentWallet2, msg.TextEncrypted) - assert.Len(t, msg.StatusHistory, 2) - assert.Equal(t, data.PendingMessageStatus, msg.StatusHistory[0].Status) - assert.Equal(t, data.SuccessMessageStatus, msg.StatusHistory[1].Status) - assert.Nil(t, msg.AssetID) - }) + var msg data.Message + err = dbConnectionPool.GetContext(ctx, &msg, q, receiver1.ID, wallet1.ID, rec1RW.ID) + require.NoError(t, err) + + assert.Equal(t, message.MessengerTypeTwilioSMS, msg.Type) + assert.Equal(t, receiver1.ID, msg.ReceiverID) + assert.Equal(t, wallet1.ID, msg.WalletID) + assert.Equal(t, rec1RW.ID, *msg.ReceiverWalletID) + assert.Equal(t, data.FailureMessageStatus, msg.Status) + assert.Equal(t, titleWallet1, msg.TitleEncrypted) + assert.Equal(t, contentWallet1, msg.TextEncrypted) + assert.Len(t, msg.StatusHistory, 2) + assert.Equal(t, data.PendingMessageStatus, msg.StatusHistory[0].Status) + assert.Equal(t, data.FailureMessageStatus, msg.StatusHistory[1].Status) + assert.Nil(t, msg.AssetID) + + msg = data.Message{} + err = dbConnectionPool.GetContext(ctx, &msg, q, receiver2.ID, wallet2.ID, rec2RW.ID) + require.NoError(t, err) + + assert.Equal(t, message.MessengerTypeTwilioSMS, msg.Type) + assert.Equal(t, receiver2.ID, msg.ReceiverID) + assert.Equal(t, wallet2.ID, msg.WalletID) + assert.Equal(t, rec2RW.ID, *msg.ReceiverWalletID) + assert.Equal(t, data.SuccessMessageStatus, msg.Status) + assert.Equal(t, titleWallet2, msg.TitleEncrypted) + assert.Equal(t, contentWallet2, msg.TextEncrypted) + assert.Len(t, msg.StatusHistory, 2) + assert.Equal(t, data.PendingMessageStatus, msg.StatusHistory[0].Status) + assert.Equal(t, data.SuccessMessageStatus, msg.StatusHistory[1].Status) + assert.Nil(t, msg.AssetID) } diff --git a/internal/serve/httphandler/countries_handler.go b/internal/serve/httphandler/countries_handler.go deleted file mode 100644 index 565728d3c..000000000 --- a/internal/serve/httphandler/countries_handler.go +++ /dev/null @@ -1,25 +0,0 @@ -package httphandler - -import ( - "net/http" - - "github.com/stellar/go/support/render/httpjson" - - "github.com/stellar/stellar-disbursement-platform-backend/internal/data" - "github.com/stellar/stellar-disbursement-platform-backend/internal/serve/httperror" -) - -type CountriesHandler struct { - Models *data.Models -} - -// GetCountries returns a list of countries -func (c CountriesHandler) GetCountries(w http.ResponseWriter, r *http.Request) { - countries, err := c.Models.Countries.GetAll(r.Context()) - if err != nil { - ctx := r.Context() - httperror.InternalError(ctx, "Cannot retrieve countries", err, nil).Render(w) - return - } - httpjson.Render(w, countries, httpjson.JSON) -} diff --git a/internal/serve/httphandler/countries_handler_test.go b/internal/serve/httphandler/countries_handler_test.go deleted file mode 100644 index 96a1e3cf9..000000000 --- a/internal/serve/httphandler/countries_handler_test.go +++ /dev/null @@ -1,54 +0,0 @@ -package httphandler - -import ( - "context" - "encoding/json" - "io" - "net/http" - "net/http/httptest" - "testing" - - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - - "github.com/stellar/stellar-disbursement-platform-backend/db" - "github.com/stellar/stellar-disbursement-platform-backend/db/dbtest" - "github.com/stellar/stellar-disbursement-platform-backend/internal/data" -) - -func Test_CountriesHandlerGetCountries(t *testing.T) { - dbt := dbtest.Open(t) - defer dbt.Close() - - dbConnectionPool, err := db.OpenDBConnectionPool(dbt.DSN) - require.NoError(t, err) - defer dbConnectionPool.Close() - - models, err := data.NewModels(dbConnectionPool) - require.NoError(t, err) - - ctx := context.Background() - - handler := &CountriesHandler{ - Models: models, - } - - t.Run("successfully returns a list of countries", func(t *testing.T) { - expected := data.ClearAndCreateCountryFixtures(t, ctx, dbConnectionPool) - expectedJSON, err := json.Marshal(expected) - require.NoError(t, err) - - rr := httptest.NewRecorder() - req, _ := http.NewRequest("GET", "/countries", nil) - http.HandlerFunc(handler.GetCountries).ServeHTTP(rr, req) - - resp := rr.Result() - - respBody, err := io.ReadAll(resp.Body) - require.NoError(t, err) - - assert.Equal(t, http.StatusOK, resp.StatusCode) - - assert.JSONEq(t, string(expectedJSON), string(respBody)) - }) -} diff --git a/internal/serve/httphandler/disbursement_handler.go b/internal/serve/httphandler/disbursement_handler.go index 14eb67b02..c17f3f2ba 100644 --- a/internal/serve/httphandler/disbursement_handler.go +++ b/internal/serve/httphandler/disbursement_handler.go @@ -43,7 +43,6 @@ type DisbursementHandler struct { type PostDisbursementRequest struct { Name string `json:"name"` - CountryCode string `json:"country_code"` WalletID string `json:"wallet_id"` AssetID string `json:"asset_id"` VerificationField data.VerificationType `json:"verification_field"` @@ -55,7 +54,6 @@ func (d DisbursementHandler) validateRequest(req PostDisbursementRequest) *valid v := validators.NewValidator() v.Check(req.Name != "", "name", "name is required") - v.Check(req.CountryCode != "", "country_code", "country_code is required") v.Check(req.WalletID != "", "wallet_id", "wallet_id is required") v.Check(req.AssetID != "", "asset_id", "asset_id is required") v.Check( @@ -122,17 +120,9 @@ func (d DisbursementHandler) PostDisbursement(w http.ResponseWriter, r *http.Req return } - // Get Country - country, err := d.Models.Countries.Get(ctx, req.CountryCode) - if err != nil { - httperror.BadRequest("country code could not be retrieved", err, nil).Render(w) - return - } - // Insert disbursement disbursement := data.Disbursement{ Asset: asset, - Country: country, Name: req.Name, ReceiverRegistrationMessageTemplate: req.ReceiverRegistrationMessageTemplate, RegistrationContactType: req.RegistrationContactType, @@ -163,9 +153,8 @@ func (d DisbursementHandler) PostDisbursement(w http.ResponseWriter, r *http.Req // Monitor disbursement creation labels := monitor.DisbursementLabels{ - Asset: newDisbursement.Asset.Code, - Country: newDisbursement.Country.Code, - Wallet: newDisbursement.Wallet.Name, + Asset: newDisbursement.Asset.Code, + Wallet: newDisbursement.Wallet.Name, } err = d.MonitorService.MonitorCounters(monitor.DisbursementsCounterTag, labels.ToMap()) if err != nil { diff --git a/internal/serve/httphandler/disbursement_handler_test.go b/internal/serve/httphandler/disbursement_handler_test.go index ede0121b3..d8892602b 100644 --- a/internal/serve/httphandler/disbursement_handler_test.go +++ b/internal/serve/httphandler/disbursement_handler_test.go @@ -48,7 +48,6 @@ func Test_DisbursementHandler_validateRequest(t *testing.T) { request: PostDisbursementRequest{}, expectedErrors: map[string]interface{}{ "name": "name is required", - "country_code": "country_code is required", "wallet_id": "wallet_id is required", "asset_id": "asset_id is required", "registration_contact_type": fmt.Sprintf("registration_contact_type must be one of %v", data.AllRegistrationContactTypes()), @@ -58,10 +57,9 @@ func Test_DisbursementHandler_validateRequest(t *testing.T) { { name: "🔴 registration_contact_type and verification_field are invalid", request: PostDisbursementRequest{ - Name: "disbursement 1", - CountryCode: "UKR", - AssetID: "61dbfa89-943a-413c-b862-a2177384d321", - WalletID: "aab4a4a9-2493-4f37-9741-01d5bd31d68b", + Name: "disbursement 1", + AssetID: "61dbfa89-943a-413c-b862-a2177384d321", + WalletID: "aab4a4a9-2493-4f37-9741-01d5bd31d68b", RegistrationContactType: data.RegistrationContactType{ ReceiverContactType: "invalid1", }, @@ -76,7 +74,6 @@ func Test_DisbursementHandler_validateRequest(t *testing.T) { name: "🟢 all fields are valid", request: PostDisbursementRequest{ Name: "disbursement 1", - CountryCode: "UKR", AssetID: "61dbfa89-943a-413c-b862-a2177384d321", WalletID: "aab4a4a9-2493-4f37-9741-01d5bd31d68b", RegistrationContactType: data.RegistrationContactTypePhone, @@ -124,13 +121,11 @@ func Test_DisbursementHandler_PostDisbursement(t *testing.T) { enabledWallet.Assets = nil asset := data.GetAssetFixture(t, ctx, dbConnectionPool, data.FixtureAssetUSDC) - country := data.GetCountryFixture(t, ctx, dbConnectionPool, data.FixtureCountryUKR) existingDisbursement := data.CreateDisbursementFixture(t, ctx, dbConnectionPool, models.Disbursements, &data.Disbursement{ - Name: "existing disbursement", - Asset: asset, - Wallet: &enabledWallet, - Country: country, + Name: "existing disbursement", + Asset: asset, + Wallet: &enabledWallet, }) type TestCase struct { @@ -149,7 +144,6 @@ func Test_DisbursementHandler_PostDisbursement(t *testing.T) { "error": "The request was invalid in some way.", "extras": { "name": "name is required", - "country_code": "country_code is required", "wallet_id": "wallet_id is required", "asset_id": "asset_id is required", "registration_contact_type": "registration_contact_type must be one of [EMAIL EMAIL_AND_WALLET_ADDRESS PHONE_NUMBER PHONE_NUMBER_AND_WALLET_ADDRESS]", @@ -162,7 +156,6 @@ func Test_DisbursementHandler_PostDisbursement(t *testing.T) { name: "🔴 wallet_id could not be found", reqBody: map[string]interface{}{ "name": "disbursement 1", - "country_code": country.Code, "asset_id": asset.ID, "wallet_id": "not-found-wallet-id", "registration_contact_type": data.RegistrationContactTypePhone, @@ -177,7 +170,6 @@ func Test_DisbursementHandler_PostDisbursement(t *testing.T) { name: "🔴 wallet is not enabled", reqBody: map[string]interface{}{ "name": "disbursement 1", - "country_code": country.Code, "asset_id": asset.ID, "wallet_id": disabledWallet.ID, "registration_contact_type": data.RegistrationContactTypePhone, @@ -192,7 +184,6 @@ func Test_DisbursementHandler_PostDisbursement(t *testing.T) { name: "🔴 asset_id could not be found", reqBody: map[string]interface{}{ "name": "disbursement 1", - "country_code": country.Code, "asset_id": "not-found-asset-id", "wallet_id": enabledWallet.ID, "registration_contact_type": data.RegistrationContactTypePhone, @@ -203,26 +194,10 @@ func Test_DisbursementHandler_PostDisbursement(t *testing.T) { return `{"error":"asset ID could not be retrieved"}` }, }, - { - name: "🔴 country_code could not be found", - reqBody: map[string]interface{}{ - "name": "disbursement 1", - "country_code": "not-found-country-code", - "asset_id": asset.ID, - "wallet_id": enabledWallet.ID, - "registration_contact_type": data.RegistrationContactTypePhone, - "verification_field": data.VerificationTypeDateOfBirth, - }, - wantStatusCode: http.StatusBadRequest, - wantResponseBodyFn: func(d *data.Disbursement) string { - return `{"error":"country code could not be retrieved"}` - }, - }, { name: "🔴 non-unique disbursement name", reqBody: map[string]interface{}{ "name": existingDisbursement.Name, - "country_code": country.Code, "asset_id": asset.ID, "wallet_id": enabledWallet.ID, "registration_contact_type": data.RegistrationContactTypePhone, @@ -248,15 +223,13 @@ func Test_DisbursementHandler_PostDisbursement(t *testing.T) { name: fmt.Sprintf("🟢[%s]registration_contact_type%s", registrationContactType, testNameSuffix), prepareMocksFn: func(t *testing.T, mMonitorService *monitorMocks.MockMonitorService) { labels := monitor.DisbursementLabels{ - Asset: asset.Code, - Country: country.Code, - Wallet: enabledWallet.Name, + Asset: asset.Code, + Wallet: enabledWallet.Name, } mMonitorService.On("MonitorCounters", monitor.DisbursementsCounterTag, labels.ToMap()).Return(nil).Once() }, reqBody: map[string]interface{}{ "name": fmt.Sprintf("successful disbursement %d", i), - "country_code": country.Code, "asset_id": asset.ID, "wallet_id": enabledWallet.ID, "registration_contact_type": registrationContactType.String(), @@ -289,12 +262,6 @@ func Test_DisbursementHandler_PostDisbursement(t *testing.T) { "updated_at": asset.UpdatedAt.Format(time.RFC3339Nano), "deleted_at": nil, }, - "country": map[string]interface{}{ - "code": country.Code, - "name": country.Name, - "created_at": country.CreatedAt.Format(time.RFC3339Nano), - "updated_at": country.UpdatedAt.Format(time.RFC3339Nano), - }, "wallet": map[string]interface{}{ "id": enabledWallet.ID, "name": enabledWallet.Name, @@ -488,7 +455,6 @@ func Test_DisbursementHandler_GetDisbursements_Success(t *testing.T) { // create fixtures wallet := data.CreateDefaultWalletFixture(t, ctx, dbConnectionPool) asset := data.GetAssetFixture(t, ctx, dbConnectionPool, data.FixtureAssetUSDC) - country := data.GetCountryFixture(t, ctx, dbConnectionPool, data.FixtureCountryUKR) createdByUser := auth.User{ ID: "User1", @@ -551,7 +517,6 @@ func Test_DisbursementHandler_GetDisbursements_Success(t *testing.T) { StatusHistory: draftStatusHistory, Asset: asset, Wallet: wallet, - Country: country, CreatedAt: time.Date(2022, 3, 21, 23, 40, 20, 1431, time.UTC), }) disbursement2 := data.CreateDisbursementFixture(t, ctx, dbConnectionPool, models.Disbursements, &data.Disbursement{ @@ -560,7 +525,6 @@ func Test_DisbursementHandler_GetDisbursements_Success(t *testing.T) { StatusHistory: draftStatusHistory, Asset: asset, Wallet: wallet, - Country: country, CreatedAt: time.Date(2023, 2, 20, 23, 40, 20, 1431, time.UTC), }) disbursement3 := data.CreateDisbursementFixture(t, ctx, dbConnectionPool, models.Disbursements, &data.Disbursement{ @@ -569,7 +533,6 @@ func Test_DisbursementHandler_GetDisbursements_Success(t *testing.T) { StatusHistory: startedStatusHistory, Asset: asset, Wallet: wallet, - Country: country, CreatedAt: time.Date(2023, 3, 19, 23, 40, 20, 1431, time.UTC), }) disbursement4 := data.CreateDisbursementFixture(t, ctx, dbConnectionPool, models.Disbursements, &data.Disbursement{ @@ -578,7 +541,6 @@ func Test_DisbursementHandler_GetDisbursements_Success(t *testing.T) { StatusHistory: draftStatusHistory, Asset: asset, Wallet: wallet, - Country: country, CreatedAt: time.Date(2023, 4, 19, 23, 40, 20, 1431, time.UTC), }) @@ -871,14 +833,12 @@ func Test_DisbursementHandler_PostDisbursementInstructions(t *testing.T) { // create fixtures wallet := data.CreateDefaultWalletFixture(t, ctx, dbConnectionPool) asset := data.GetAssetFixture(t, ctx, dbConnectionPool, data.FixtureAssetUSDC) - country := data.GetCountryFixture(t, ctx, dbConnectionPool, data.FixtureCountryUKR) // create disbursement draftDisbursement := data.CreateDraftDisbursementFixture(t, ctx, dbConnectionPool, handler.Models.Disbursements, data.Disbursement{ - Name: "disbursement1", - Asset: asset, - Country: country, - Wallet: wallet, + Name: "disbursement1", + Asset: asset, + Wallet: wallet, }) startedDisbursement := data.CreateDisbursementFixture(t, ctx, dbConnectionPool, handler.Models.Disbursements, &data.Disbursement{ @@ -1212,24 +1172,19 @@ func Test_DisbursementHandler_GetDisbursementReceivers(t *testing.T) { asset := data.CreateAssetFixture(t, context.Background(), dbConnectionPool, "USDC", "GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVV") - country := data.CreateCountryFixture(t, context.Background(), dbConnectionPool, - "FRA", - "France") // create disbursements disbursementWithReceivers := data.CreateDisbursementFixture(t, context.Background(), dbConnectionPool, handler.Models.Disbursements, &data.Disbursement{ - Name: "disbursement with receivers", - Status: data.DraftDisbursementStatus, - Asset: asset, - Wallet: wallet, - Country: country, + Name: "disbursement with receivers", + Status: data.DraftDisbursementStatus, + Asset: asset, + Wallet: wallet, }) disbursementWithoutReceivers := data.CreateDisbursementFixture(t, context.Background(), dbConnectionPool, handler.Models.Disbursements, &data.Disbursement{ - Name: "disbursement without receivers", - Status: data.DraftDisbursementStatus, - Asset: asset, - Wallet: wallet, - Country: country, + Name: "disbursement without receivers", + Status: data.DraftDisbursementStatus, + Asset: asset, + Wallet: wallet, }) // create disbursement receivers diff --git a/internal/serve/httphandler/payments_handler_test.go b/internal/serve/httphandler/payments_handler_test.go index fcad3f450..f7571ea33 100644 --- a/internal/serve/httphandler/payments_handler_test.go +++ b/internal/serve/httphandler/payments_handler_test.go @@ -65,18 +65,16 @@ func Test_PaymentsHandlerGet(t *testing.T) { ctx := context.Background() asset := data.CreateAssetFixture(t, ctx, dbConnectionPool, "USDC", "GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVV") - country := data.CreateCountryFixture(t, ctx, dbConnectionPool, "FRA", "France") wallet := data.CreateWalletFixture(t, ctx, dbConnectionPool, "wallet1", "https://www.wallet.com", "www.wallet.com", "wallet1://") receiver := data.CreateReceiverFixture(t, ctx, dbConnectionPool, &data.Receiver{}) receiverWallet := data.CreateReceiverWalletFixture(t, ctx, dbConnectionPool, receiver.ID, wallet.ID, data.DraftReceiversWalletStatus) disbursement := data.CreateDisbursementFixture(t, ctx, dbConnectionPool, models.Disbursements, &data.Disbursement{ - Name: "disbursement 1", - Status: data.DraftDisbursementStatus, - Asset: asset, - Wallet: wallet, - Country: country, + Name: "disbursement 1", + Status: data.DraftDisbursementStatus, + Asset: asset, + Wallet: wallet, }) stellarTransactionID, err := utils.RandomString(64) @@ -200,13 +198,11 @@ func Test_PaymentHandler_GetPayments_CirclePayments(t *testing.T) { // Create fixtures asset := data.CreateAssetFixture(t, ctx, dbConnectionPool, "USDC", "GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVV") - country := data.CreateCountryFixture(t, ctx, dbConnectionPool, "FRA", "France") wallet := data.CreateWalletFixture(t, ctx, dbConnectionPool, "wallet1", "https://www.wallet.com", "www.wallet.com", "wallet1://") disbursement := data.CreateDisbursementFixture(t, ctx, dbConnectionPool, models.Disbursements, &data.Disbursement{ - Country: country, - Wallet: wallet, - Status: data.ReadyDisbursementStatus, - Asset: asset, + Wallet: wallet, + Status: data.ReadyDisbursementStatus, + Asset: asset, }) receiverReady := data.CreateReceiverFixture(t, ctx, dbConnectionPool, &data.Receiver{}) rwReady := data.CreateReceiverWalletFixture(t, ctx, dbConnectionPool, receiverReady.ID, wallet.ID, data.ReadyReceiversWalletStatus) @@ -469,7 +465,6 @@ func Test_PaymentHandler_GetPayments_Success(t *testing.T) { // create fixtures asset := data.CreateAssetFixture(t, ctx, dbConnectionPool, "USDC", "GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVV") - country := data.CreateCountryFixture(t, ctx, dbConnectionPool, "FRA", "France") wallet := data.CreateWalletFixture(t, ctx, dbConnectionPool, "wallet1", "https://www.wallet.com", "www.wallet.com", "wallet1://") // create receivers @@ -481,19 +476,17 @@ func Test_PaymentHandler_GetPayments_Success(t *testing.T) { // create disbursements disbursement1 := data.CreateDisbursementFixture(t, ctx, dbConnectionPool, models.Disbursements, &data.Disbursement{ - Name: "disbursement 1", - Status: data.DraftDisbursementStatus, - Asset: asset, - Wallet: wallet, - Country: country, + Name: "disbursement 1", + Status: data.DraftDisbursementStatus, + Asset: asset, + Wallet: wallet, }) disbursement2 := data.CreateDisbursementFixture(t, ctx, dbConnectionPool, models.Disbursements, &data.Disbursement{ - Name: "disbursement 2", - Status: data.ReadyDisbursementStatus, - Asset: asset, - Wallet: wallet, - Country: country, + Name: "disbursement 2", + Status: data.ReadyDisbursementStatus, + Asset: asset, + Wallet: wallet, }) stellarTransactionID, err := utils.RandomString(64) @@ -766,7 +759,6 @@ func Test_PaymentHandler_GetPayments_Success(t *testing.T) { func Test_PaymentHandler_RetryPayments(t *testing.T) { dbt := dbtest.Open(t) defer dbt.Close() - dbConnectionPool, err := db.OpenDBConnectionPool(dbt.DSN) require.NoError(t, err) defer dbConnectionPool.Close() @@ -776,18 +768,8 @@ func Test_PaymentHandler_RetryPayments(t *testing.T) { tnt := tenant.Tenant{ID: "tenant-id"} - ctx := context.Background() - ctx = tenant.SaveTenantInContext(ctx, &tnt) - - data.DeleteAllPaymentsFixtures(t, ctx, dbConnectionPool) - data.DeleteAllDisbursementFixtures(t, ctx, dbConnectionPool) - data.DeleteAllCountryFixtures(t, ctx, dbConnectionPool) - data.DeleteAllAssetFixtures(t, ctx, dbConnectionPool) - data.DeleteAllReceiverWalletsFixtures(t, ctx, dbConnectionPool) - data.DeleteAllReceiversFixtures(t, ctx, dbConnectionPool) - data.DeleteAllWalletFixtures(t, ctx, dbConnectionPool) + ctx := tenant.SaveTenantInContext(context.Background(), &tnt) - country := data.CreateCountryFixture(t, ctx, dbConnectionPool, "BRA", "Brazil") wallet := data.CreateWalletFixture(t, ctx, dbConnectionPool, "Wallet", "https://www.wallet.com", "www.wallet.com", "wallet://") asset := data.CreateAssetFixture(t, ctx, dbConnectionPool, "USDC", "GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVV") @@ -795,7 +777,6 @@ func Test_PaymentHandler_RetryPayments(t *testing.T) { receiverWallet := data.CreateReceiverWalletFixture(t, ctx, dbConnectionPool, receiver.ID, wallet.ID, data.RegisteredReceiversWalletStatus) disbursement := data.CreateDisbursementFixture(t, ctx, dbConnectionPool, models.Disbursements, &data.Disbursement{ - Country: country, Wallet: wallet, Asset: asset, Status: data.StartedDisbursementStatus, @@ -1480,18 +1461,16 @@ func Test_PaymentsHandler_getPaymentsWithCount(t *testing.T) { }) asset := data.CreateAssetFixture(t, ctx, dbConnectionPool, "USDC", "GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVV") - country := data.CreateCountryFixture(t, ctx, dbConnectionPool, "FRA", "France") wallet := data.CreateWalletFixture(t, ctx, dbConnectionPool, "wallet1", "https://www.wallet.com", "www.wallet.com", "wallet1://") receiver := data.CreateReceiverFixture(t, ctx, dbConnectionPool, &data.Receiver{}) receiverWallet := data.CreateReceiverWalletFixture(t, ctx, dbConnectionPool, receiver.ID, wallet.ID, data.DraftReceiversWalletStatus) disbursement := data.CreateDisbursementFixture(t, ctx, dbConnectionPool, models.Disbursements, &data.Disbursement{ - Name: "disbursement 1", - Status: data.DraftDisbursementStatus, - Asset: asset, - Wallet: wallet, - Country: country, + Name: "disbursement 1", + Status: data.DraftDisbursementStatus, + Asset: asset, + Wallet: wallet, }) payment := data.CreatePaymentFixture(t, ctx, dbConnectionPool, models.Payment, &data.Payment{ @@ -1569,15 +1548,13 @@ func Test_PaymentsHandler_PatchPaymentStatus(t *testing.T) { // create fixtures wallet := data.CreateDefaultWalletFixture(t, ctx, dbConnectionPool) asset := data.GetAssetFixture(t, ctx, dbConnectionPool, data.FixtureAssetUSDC) - country := data.GetCountryFixture(t, ctx, dbConnectionPool, data.FixtureCountryUSA) // create disbursements startedDisbursement := data.CreateDisbursementFixture(t, ctx, dbConnectionPool, models.Disbursements, &data.Disbursement{ - Name: "ready disbursement", - Status: data.StartedDisbursementStatus, - Asset: asset, - Wallet: wallet, - Country: country, + Name: "ready disbursement", + Status: data.StartedDisbursementStatus, + Asset: asset, + Wallet: wallet, }) // create disbursement receivers diff --git a/internal/serve/httphandler/receiver_handler_test.go b/internal/serve/httphandler/receiver_handler_test.go index 507ef66d5..92db1e072 100644 --- a/internal/serve/httphandler/receiver_handler_test.go +++ b/internal/serve/httphandler/receiver_handler_test.go @@ -44,15 +44,13 @@ func Test_ReceiverHandlerGet(t *testing.T) { ctx := context.Background() asset := data.CreateAssetFixture(t, ctx, dbConnectionPool, "USDC", "GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVV") - country := data.CreateCountryFixture(t, ctx, dbConnectionPool, "FRA", "France") wallet1 := data.CreateWalletFixture(t, ctx, dbConnectionPool, "wallet1", "https://www.wallet1.com", "www.wallet1.com", "wallet1://") receiver := data.CreateReceiverFixture(t, ctx, dbConnectionPool, &data.Receiver{}) disbursement := data.Disbursement{ - Status: data.DraftDisbursementStatus, - Asset: asset, - Country: country, + Status: data.DraftDisbursementStatus, + Asset: asset, } stellarTransactionID, err := utils.RandomString(64) @@ -488,7 +486,6 @@ func Test_ReceiverHandler_GetReceivers_Success(t *testing.T) { // create fixtures asset := data.CreateAssetFixture(t, ctx, dbConnectionPool, "USDC", "GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVV") - country := data.CreateCountryFixture(t, ctx, dbConnectionPool, "FRA", "France") wallet := data.CreateWalletFixture(t, ctx, dbConnectionPool, "wallet1", "https://www.wallet.com", "www.wallet.com", "wallet1://") // create receivers @@ -596,11 +593,10 @@ func Test_ReceiverHandler_GetReceivers_Success(t *testing.T) { // create disbursements disbursement1 := data.CreateDisbursementFixture(t, ctx, dbConnectionPool, models.Disbursements, &data.Disbursement{ - Name: "disbursement 1", - Status: data.DraftDisbursementStatus, - Asset: asset, - Wallet: wallet, - Country: country, + Name: "disbursement 1", + Status: data.DraftDisbursementStatus, + Asset: asset, + Wallet: wallet, }) stellarTransactionID, err := utils.RandomString(64) diff --git a/internal/serve/httphandler/statistics_handler_test.go b/internal/serve/httphandler/statistics_handler_test.go index dd7bc83fa..4fff57490 100644 --- a/internal/serve/httphandler/statistics_handler_test.go +++ b/internal/serve/httphandler/statistics_handler_test.go @@ -88,15 +88,13 @@ func TestStatisticsHandler(t *testing.T) { require.NoError(t, err) asset1 := data.CreateAssetFixture(t, ctx, dbConnectionPool, "USDC", "GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVV") - country := data.CreateCountryFixture(t, ctx, dbConnectionPool, "FRA", "France") wallet := data.CreateWalletFixture(t, ctx, dbConnectionPool, "wallet1", "https://www.wallet.com", "www.wallet.com", "wallet1://") disbursement := data.CreateDisbursementFixture(t, ctx, dbConnectionPool, models.Disbursements, &data.Disbursement{ - Name: "disbursement 1", - Status: data.CompletedDisbursementStatus, - Asset: asset1, - Wallet: wallet, - Country: country, + Name: "disbursement 1", + Status: data.CompletedDisbursementStatus, + Asset: asset1, + Wallet: wallet, }) t.Run("get statistics for existing disbursement with no data", func(t *testing.T) { diff --git a/internal/serve/httphandler/verify_receiver_registration_handler_test.go b/internal/serve/httphandler/verify_receiver_registration_handler_test.go index 040cf985e..b15ea78c4 100644 --- a/internal/serve/httphandler/verify_receiver_registration_handler_test.go +++ b/internal/serve/httphandler/verify_receiver_registration_handler_test.go @@ -585,7 +585,6 @@ func Test_VerifyReceiverRegistrationHandler_buildPaymentsReadyToPayEventMessage( wallet := data.CreateWalletFixture(t, ctx, dbConnectionPool, "testWallet", "https://home.page", "home.page", "wallet123://") asset := data.CreateAssetFixture(t, ctx, dbConnectionPool, "USDC", "GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVV") - country := data.CreateCountryFixture(t, ctx, dbConnectionPool, "UKR", "Ukraine") receiver := data.CreateReceiverFixture(t, ctx, dbConnectionPool, &data.Receiver{}) rw := data.CreateReceiverWalletFixture(t, ctx, dbConnectionPool, receiver.ID, wallet.ID, data.RegisteredReceiversWalletStatus) @@ -598,10 +597,9 @@ func Test_VerifyReceiverRegistrationHandler_buildPaymentsReadyToPayEventMessage( } pausedDisbursement := data.CreateDisbursementFixture(t, ctx, dbConnectionPool, models.Disbursements, &data.Disbursement{ - Wallet: wallet, - Asset: asset, - Country: country, - Status: data.PausedDisbursementStatus, + Wallet: wallet, + Asset: asset, + Status: data.PausedDisbursementStatus, }) _ = data.CreatePaymentFixture(t, ctx, dbConnectionPool, models.Payment, &data.Payment{ @@ -638,10 +636,9 @@ func Test_VerifyReceiverRegistrationHandler_buildPaymentsReadyToPayEventMessage( } disbursement := data.CreateDisbursementFixture(t, ctxWithoutTenant, dbConnectionPool, models.Disbursements, &data.Disbursement{ - Wallet: wallet, - Asset: asset, - Country: country, - Status: data.StartedDisbursementStatus, + Wallet: wallet, + Asset: asset, + Status: data.StartedDisbursementStatus, }) _ = data.CreatePaymentFixture(t, ctx, dbConnectionPool, models.Payment, &data.Payment{ @@ -672,10 +669,9 @@ func Test_VerifyReceiverRegistrationHandler_buildPaymentsReadyToPayEventMessage( } disbursement := data.CreateDisbursementFixture(t, ctx, dbConnectionPool, models.Disbursements, &data.Disbursement{ - Wallet: wallet, - Asset: asset, - Country: country, - Status: data.StartedDisbursementStatus, + Wallet: wallet, + Asset: asset, + Status: data.StartedDisbursementStatus, }) payment := data.CreatePaymentFixture(t, ctx, dbConnectionPool, models.Payment, &data.Payment{ @@ -721,10 +717,9 @@ func Test_VerifyReceiverRegistrationHandler_buildPaymentsReadyToPayEventMessage( } disbursement := data.CreateDisbursementFixture(t, ctx, dbConnectionPool, models.Disbursements, &data.Disbursement{ - Wallet: wallet, - Asset: asset, - Country: country, - Status: data.StartedDisbursementStatus, + Wallet: wallet, + Asset: asset, + Status: data.StartedDisbursementStatus, }) payment := data.CreatePaymentFixture(t, ctx, dbConnectionPool, models.Payment, &data.Payment{ @@ -1330,7 +1325,6 @@ func Test_VerifyReceiverRegistrationHandler_VerifyReceiverRegistration(t *testin // update database with the entries needed defer data.DeleteAllAssetFixtures(t, ctx, dbConnectionPool) - defer data.DeleteAllCountryFixtures(t, ctx, dbConnectionPool) defer data.DeleteAllDisbursementFixtures(t, ctx, dbConnectionPool) defer data.DeleteAllReceiversFixtures(t, ctx, dbConnectionPool) defer data.DeleteAllReceiverVerificationFixtures(t, ctx, dbConnectionPool) @@ -1349,12 +1343,10 @@ func Test_VerifyReceiverRegistrationHandler_VerifyReceiverRegistration(t *testin // Creating a payment ready to pay asset := data.CreateAssetFixture(t, ctx, dbConnectionPool, "USDC", "GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVV") - country := data.CreateCountryFixture(t, ctx, dbConnectionPool, "UKR", "Ukraine") disbursement := data.CreateDisbursementFixture(t, ctx, dbConnectionPool, models.Disbursements, &data.Disbursement{ - Wallet: wallet, - Asset: asset, - Country: country, - Status: data.StartedDisbursementStatus, + Wallet: wallet, + Asset: asset, + Status: data.StartedDisbursementStatus, }) payment := data.CreatePaymentFixture(t, ctx, dbConnectionPool, models.Payment, &data.Payment{ Amount: "100", diff --git a/internal/serve/serve.go b/internal/serve/serve.go index 54e4dd54f..6f37cb534 100644 --- a/internal/serve/serve.go +++ b/internal/serve/serve.go @@ -324,10 +324,6 @@ func handleHTTP(o ServeOptions) *chi.Mux { Patch("/wallets/{receiver_wallet_id}", receiverWalletHandler.RetryInvitation) }) - r.With(middleware.AnyRoleMiddleware(authManager, data.GetAllRoles()...)).Route("/countries", func(r chi.Router) { - r.Get("/", httphandler.CountriesHandler{Models: o.Models}.GetCountries) - }) - r. With(middleware.AnyRoleMiddleware(authManager, data.GetAllRoles()...)). Get("/registration-contact-types", httphandler.RegistrationContactTypesHandler{}.Get) diff --git a/internal/serve/serve_test.go b/internal/serve/serve_test.go index e25a48a6b..84e60ff33 100644 --- a/internal/serve/serve_test.go +++ b/internal/serve/serve_test.go @@ -454,8 +454,6 @@ func Test_handleHTTP_authenticatedEndpoints(t *testing.T) { {http.MethodPatch, "/receivers/1234"}, {http.MethodPatch, "/receivers/wallets/1234"}, {http.MethodGet, "/receivers/verification-types"}, - // Countries - {http.MethodGet, "/countries"}, // Receiver Contact Types {http.MethodGet, "/registration-contact-types"}, // Assets diff --git a/internal/services/circle_reconciliation_service_test.go b/internal/services/circle_reconciliation_service_test.go index c89549b67..26cd2e008 100644 --- a/internal/services/circle_reconciliation_service_test.go +++ b/internal/services/circle_reconciliation_service_test.go @@ -165,7 +165,6 @@ func Test_NewCircleReconciliationService_Reconcile_partialSuccess(t *testing.T) require.NoError(t, err) asset := data.CreateAssetFixture(t, ctx, dbConnectionPool, assets.EURCAssetCode, assets.EURCAssetTestnet.Issuer) - country := data.CreateCountryFixture(t, ctx, dbConnectionPool, "FRA", "France") wallet := data.CreateWalletFixture(t, ctx, dbConnectionPool, "My Wallet", "https://www.wallet.com", "www.wallet.com", "wallet1://") // Create distribution accounts @@ -176,11 +175,10 @@ func Test_NewCircleReconciliationService_Reconcile_partialSuccess(t *testing.T) } disbursement := data.CreateDisbursementFixture(t, ctx, dbConnectionPool, models.Disbursements, &data.Disbursement{ - Name: "disbursement", - Status: data.StartedDisbursementStatus, - Asset: asset, - Wallet: wallet, - Country: country, + Name: "disbursement", + Status: data.StartedDisbursementStatus, + Asset: asset, + Wallet: wallet, }) receiver := data.CreateReceiverFixture(t, ctx, dbConnectionPool, &data.Receiver{}) receiverWallet := data.CreateReceiverWalletFixture(t, ctx, dbConnectionPool, receiver.ID, wallet.ID, data.RegisteredReceiversWalletStatus) @@ -332,15 +330,13 @@ func Test_NewCircleReconciliationService_reconcileTransferRequest(t *testing.T) require.NoError(t, err) asset := data.CreateAssetFixture(t, ctx, dbConnectionPool, assets.EURCAssetCode, assets.EURCAssetTestnet.Issuer) - country := data.CreateCountryFixture(t, ctx, dbConnectionPool, "FRA", "France") wallet := data.CreateWalletFixture(t, ctx, dbConnectionPool, "My Wallet", "https://www.wallet.com", "www.wallet.com", "wallet1://") disbursement := data.CreateDisbursementFixture(t, ctx, dbConnectionPool, models.Disbursements, &data.Disbursement{ - Name: "disbursement", - Status: data.StartedDisbursementStatus, - Asset: asset, - Wallet: wallet, - Country: country, + Name: "disbursement", + Status: data.StartedDisbursementStatus, + Asset: asset, + Wallet: wallet, }) receiver := data.CreateReceiverFixture(t, ctx, dbConnectionPool, &data.Receiver{}) receiverWallet := data.CreateReceiverWalletFixture(t, ctx, dbConnectionPool, receiver.ID, wallet.ID, data.RegisteredReceiversWalletStatus) diff --git a/internal/services/disbursement_management_service_test.go b/internal/services/disbursement_management_service_test.go index 9ca0fc2b9..7418f7305 100644 --- a/internal/services/disbursement_management_service_test.go +++ b/internal/services/disbursement_management_service_test.go @@ -210,7 +210,6 @@ func Test_DisbursementManagementService_StartDisbursement_success(t *testing.T) // Create fixtures: asset, wallet, country asset := data.CreateAssetFixture(t, ctx, dbConnectionPool, assets.EURCAssetCode, assets.EURCAssetIssuerTestnet) wallet := data.CreateDefaultWalletFixture(t, ctx, dbConnectionPool) - country := data.GetCountryFixture(t, ctx, dbConnectionPool, data.FixtureCountryUKR) // Update context with tenant and auth token tnt := tenant.Tenant{ID: "tenant-id"} @@ -337,11 +336,10 @@ func Test_DisbursementManagementService_StartDisbursement_success(t *testing.T) // Create fixtures: disbursements readyDisbursement := data.CreateDisbursementFixture(t, ctx, dbConnectionPool, models.Disbursements, &data.Disbursement{ - Name: "ready disbursement", - Status: data.ReadyDisbursementStatus, - Asset: asset, - Wallet: wallet, - Country: country, + Name: "ready disbursement", + Status: data.ReadyDisbursementStatus, + Asset: asset, + Wallet: wallet, StatusHistory: []data.DisbursementStatusHistoryEntry{ {UserID: ownerUser.ID, Status: data.DraftDisbursementStatus}, {UserID: ownerUser.ID, Status: data.ReadyDisbursementStatus}, @@ -514,15 +512,13 @@ func Test_DisbursementManagementService_StartDisbursement_failure(t *testing.T) // create fixtures wallet := data.CreateDefaultWalletFixture(t, ctx, dbConnectionPool) - country := data.GetCountryFixture(t, ctx, dbConnectionPool, data.FixtureCountryUKR) // Create fixtures: disbursements draftDisbursement := data.CreateDisbursementFixture(t, ctx, dbConnectionPool, models.Disbursements, &data.Disbursement{ - Name: "draft disbursement", - Status: data.DraftDisbursementStatus, - Asset: asset, - Wallet: wallet, - Country: country, + Name: "draft disbursement", + Status: data.DraftDisbursementStatus, + Asset: asset, + Wallet: wallet, }) // Create fixtures: receivers, receiver wallets @@ -572,11 +568,10 @@ func Test_DisbursementManagementService_StartDisbursement_failure(t *testing.T) userID := "9ae68f09-cad9-4311-9758-4ff59d2e9e6d" disbursement := data.CreateDisbursementFixture(t, context.Background(), dbConnectionPool, models.Disbursements, &data.Disbursement{ - Name: "disbursement #1", - Status: data.ReadyDisbursementStatus, - Asset: asset, - Wallet: wallet, - Country: country, + Name: "disbursement #1", + Status: data.ReadyDisbursementStatus, + Asset: asset, + Wallet: wallet, StatusHistory: []data.DisbursementStatusHistoryEntry{ { Status: data.DraftDisbursementStatus, @@ -612,11 +607,10 @@ func Test_DisbursementManagementService_StartDisbursement_failure(t *testing.T) usdt := data.CreateAssetFixture(t, ctx, dbConnectionPool, "USDT", "GBVHJTRLQRMIHRYTXZQOPVYCVVH7IRJN3DOFT7VC6U75CBWWBVDTWURG") disbursement := data.CreateDisbursementFixture(t, ctx, dbConnectionPool, models.Disbursements, &data.Disbursement{ - Name: "disbursement - balance insufficient", - Status: data.StartedDisbursementStatus, - Asset: usdt, - Wallet: wallet, - Country: country, + Name: "disbursement - balance insufficient", + Status: data.StartedDisbursementStatus, + Asset: usdt, + Wallet: wallet, }) // should consider this payment since it's the same asset data.CreatePaymentFixture(t, ctx, dbConnectionPool, models.Payment, &data.Payment{ @@ -628,11 +622,10 @@ func Test_DisbursementManagementService_StartDisbursement_failure(t *testing.T) }) disbursement2 := data.CreateDisbursementFixture(t, ctx, dbConnectionPool, models.Disbursements, &data.Disbursement{ - Name: "disbursement #4", - Status: data.StartedDisbursementStatus, - Asset: asset, - Wallet: wallet, - Country: country, + Name: "disbursement #4", + Status: data.StartedDisbursementStatus, + Asset: asset, + Wallet: wallet, }) // should NOT consider this payment since it's NOT the same asset data.CreatePaymentFixture(t, ctx, dbConnectionPool, models.Payment, &data.Payment{ @@ -644,11 +637,10 @@ func Test_DisbursementManagementService_StartDisbursement_failure(t *testing.T) }) disbursementInsufficientBalance := data.CreateDisbursementFixture(t, context.Background(), dbConnectionPool, models.Disbursements, &data.Disbursement{ - Name: "disbursement - insufficient balance", - Status: data.ReadyDisbursementStatus, - Asset: usdt, - Wallet: wallet, - Country: country, + Name: "disbursement - insufficient balance", + Status: data.ReadyDisbursementStatus, + Asset: usdt, + Wallet: wallet, }) data.CreatePaymentFixture(t, ctx, dbConnectionPool, models.Payment, &data.Payment{ ReceiverWallet: rwReady, @@ -724,7 +716,6 @@ func Test_DisbursementManagementService_StartDisbursement_failure(t *testing.T) Status: data.ReadyDisbursementStatus, Asset: asset, Wallet: wallet, - Country: country, StatusHistory: statusHistory, }) @@ -829,7 +820,6 @@ func Test_DisbursementManagementService_StartDisbursement_failure(t *testing.T) Status: data.ReadyDisbursementStatus, Asset: asset, Wallet: wallet, - Country: country, StatusHistory: statusHistory, }) @@ -907,7 +897,6 @@ func Test_DisbursementManagementService_StartDisbursement_failure(t *testing.T) Status: data.ReadyDisbursementStatus, Asset: asset, Wallet: wallet, - Country: country, StatusHistory: statusHistory, }) @@ -961,7 +950,6 @@ func Test_DisbursementManagementService_StartDisbursement_failure(t *testing.T) Status: data.ReadyDisbursementStatus, Asset: asset, Wallet: wallet, - Country: country, StatusHistory: statusHistory, }) @@ -1089,23 +1077,20 @@ func Test_DisbursementManagementService_PauseDisbursement(t *testing.T) { // create fixtures wallet := data.CreateDefaultWalletFixture(t, ctx, dbConnectionPool) - country := data.GetCountryFixture(t, ctx, dbConnectionPool, data.FixtureCountryUSA) // create disbursements readyDisbursement := data.CreateDisbursementFixture(t, ctx, dbConnectionPool, models.Disbursements, &data.Disbursement{ - Name: "ready disbursement", - Status: data.ReadyDisbursementStatus, - Asset: asset, - Wallet: wallet, - Country: country, + Name: "ready disbursement", + Status: data.ReadyDisbursementStatus, + Asset: asset, + Wallet: wallet, }) startedDisbursement := data.CreateDisbursementFixture(t, ctx, dbConnectionPool, models.Disbursements, &data.Disbursement{ - Name: "started disbursement", - Status: data.StartedDisbursementStatus, - Asset: asset, - Wallet: wallet, - Country: country, + Name: "started disbursement", + Status: data.StartedDisbursementStatus, + Asset: asset, + Wallet: wallet, }) // create disbursement receivers @@ -1354,15 +1339,13 @@ func Test_DisbursementManagementService_validateBalanceForDisbursement(t *testin models, outerErr := data.NewModels(dbConnectionPool) require.NoError(t, outerErr) asset := data.CreateAssetFixture(t, ctx, dbConnectionPool, "USDC", "GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVV") - country := data.CreateCountryFixture(t, ctx, dbConnectionPool, "FRA", "France") wallet := data.CreateWalletFixture(t, ctx, dbConnectionPool, "wallet1", "https://www.wallet.com", "www.wallet.com", "wallet1://") receiverReady := data.CreateReceiverFixture(t, ctx, dbConnectionPool, &data.Receiver{}) rwReady := data.CreateReceiverWalletFixture(t, ctx, dbConnectionPool, receiverReady.ID, wallet.ID, data.ReadyReceiversWalletStatus) disbursementOld := data.CreateDisbursementFixture(t, ctx, dbConnectionPool, models.Disbursements, &data.Disbursement{ - Country: country, - Wallet: wallet, - Status: data.ReadyDisbursementStatus, - Asset: asset, + Wallet: wallet, + Status: data.ReadyDisbursementStatus, + Asset: asset, }) _ = data.CreatePaymentFixture(t, ctx, dbConnectionPool, models.Payment, &data.Payment{ ReceiverWallet: rwReady, @@ -1372,10 +1355,9 @@ func Test_DisbursementManagementService_validateBalanceForDisbursement(t *testin Status: data.PendingPaymentStatus, }) disbursementNew := data.CreateDisbursementFixture(t, ctx, dbConnectionPool, models.Disbursements, &data.Disbursement{ - Country: country, - Wallet: wallet, - Status: data.ReadyDisbursementStatus, - Asset: asset, + Wallet: wallet, + Status: data.ReadyDisbursementStatus, + Asset: asset, }) _ = data.CreatePaymentFixture(t, ctx, dbConnectionPool, models.Payment, &data.Payment{ ReceiverWallet: rwReady, diff --git a/internal/services/patch_anchor_platform_transactions_completion_test.go b/internal/services/patch_anchor_platform_transactions_completion_test.go index 8f52101cc..544703ab8 100644 --- a/internal/services/patch_anchor_platform_transactions_completion_test.go +++ b/internal/services/patch_anchor_platform_transactions_completion_test.go @@ -66,7 +66,6 @@ func Test_PatchAnchorPlatformTransactionCompletionService_PatchAPTransactionForP t.Run("doesn't patch the transaction when payment isn't on Success or Failed status", func(t *testing.T) { data.DeleteAllFixtures(t, ctx, dbConnectionPool) - country := data.CreateCountryFixture(t, ctx, dbConnectionPool, "BRA", "Brazil") wallet := data.CreateWalletFixture(t, ctx, dbConnectionPool, "Wallet", "https://www.wallet.com", "www.wallet.com", "wallet://") asset := data.CreateAssetFixture(t, ctx, dbConnectionPool, "USDC", "GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVV") @@ -74,7 +73,6 @@ func Test_PatchAnchorPlatformTransactionCompletionService_PatchAPTransactionForP receiverWallet := data.CreateReceiverWalletFixture(t, ctx, dbConnectionPool, receiver.ID, wallet.ID, data.RegisteredReceiversWalletStatus) disbursement := data.CreateDisbursementFixture(t, ctx, dbConnectionPool, models.Disbursements, &data.Disbursement{ - Country: country, Wallet: wallet, Asset: asset, Status: data.StartedDisbursementStatus, @@ -103,7 +101,6 @@ func Test_PatchAnchorPlatformTransactionCompletionService_PatchAPTransactionForP t.Run("doesn't mark as synced when fails patching anchor platform transaction when payment is success", func(t *testing.T) { data.DeleteAllFixtures(t, ctx, dbConnectionPool) - country := data.CreateCountryFixture(t, ctx, dbConnectionPool, "BRA", "Brazil") wallet := data.CreateWalletFixture(t, ctx, dbConnectionPool, "Wallet", "https://www.wallet.com", "www.wallet.com", "wallet://") asset := data.CreateAssetFixture(t, ctx, dbConnectionPool, "USDC", "GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVV") @@ -111,7 +108,6 @@ func Test_PatchAnchorPlatformTransactionCompletionService_PatchAPTransactionForP receiverWallet := data.CreateReceiverWalletFixture(t, ctx, dbConnectionPool, receiver.ID, wallet.ID, data.RegisteredReceiversWalletStatus) disbursement := data.CreateDisbursementFixture(t, ctx, dbConnectionPool, models.Disbursements, &data.Disbursement{ - Country: country, Wallet: wallet, Asset: asset, Status: data.StartedDisbursementStatus, @@ -174,7 +170,6 @@ func Test_PatchAnchorPlatformTransactionCompletionService_PatchAPTransactionForP t.Run("mark as synced when patch anchor platform transaction successfully and payment is failed", func(t *testing.T) { data.DeleteAllFixtures(t, ctx, dbConnectionPool) - country := data.CreateCountryFixture(t, ctx, dbConnectionPool, "BRA", "Brazil") wallet := data.CreateWalletFixture(t, ctx, dbConnectionPool, "Wallet", "https://www.wallet.com", "www.wallet.com", "wallet://") asset := data.CreateAssetFixture(t, ctx, dbConnectionPool, "USDC", "GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVV") @@ -182,7 +177,6 @@ func Test_PatchAnchorPlatformTransactionCompletionService_PatchAPTransactionForP receiverWallet := data.CreateReceiverWalletFixture(t, ctx, dbConnectionPool, receiver.ID, wallet.ID, data.RegisteredReceiversWalletStatus) disbursement := data.CreateDisbursementFixture(t, ctx, dbConnectionPool, models.Disbursements, &data.Disbursement{ - Country: country, Wallet: wallet, Asset: asset, Status: data.StartedDisbursementStatus, @@ -228,7 +222,6 @@ func Test_PatchAnchorPlatformTransactionCompletionService_PatchAPTransactionForP t.Run("marks as synced when patch anchor platform transaction successfully and payment is success", func(t *testing.T) { data.DeleteAllFixtures(t, ctx, dbConnectionPool) - country := data.CreateCountryFixture(t, ctx, dbConnectionPool, "BRA", "Brazil") wallet := data.CreateWalletFixture(t, ctx, dbConnectionPool, "Wallet", "https://www.wallet.com", "www.wallet.com", "wallet://") asset := data.CreateAssetFixture(t, ctx, dbConnectionPool, "USDC", "GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVV") @@ -236,7 +229,6 @@ func Test_PatchAnchorPlatformTransactionCompletionService_PatchAPTransactionForP receiverWallet := data.CreateReceiverWalletFixture(t, ctx, dbConnectionPool, receiver.ID, wallet.ID, data.RegisteredReceiversWalletStatus) disbursement := data.CreateDisbursementFixture(t, ctx, dbConnectionPool, models.Disbursements, &data.Disbursement{ - Country: country, Wallet: wallet, Asset: asset, Status: data.StartedDisbursementStatus, @@ -293,7 +285,6 @@ func Test_PatchAnchorPlatformTransactionCompletionService_PatchAPTransactionForP t.Run("marks as synced when patch anchor platform transaction successfully and payment is success (XLM)", func(t *testing.T) { data.DeleteAllFixtures(t, ctx, dbConnectionPool) - country := data.CreateCountryFixture(t, ctx, dbConnectionPool, "BRA", "Brazil") wallet := data.CreateWalletFixture(t, ctx, dbConnectionPool, "Wallet", "https://www.wallet.com", "www.wallet.com", "wallet://") asset := data.CreateAssetFixture(t, ctx, dbConnectionPool, "XLM", "") @@ -301,7 +292,6 @@ func Test_PatchAnchorPlatformTransactionCompletionService_PatchAPTransactionForP receiverWallet := data.CreateReceiverWalletFixture(t, ctx, dbConnectionPool, receiver.ID, wallet.ID, data.RegisteredReceiversWalletStatus) disbursement := data.CreateDisbursementFixture(t, ctx, dbConnectionPool, models.Disbursements, &data.Disbursement{ - Country: country, Wallet: wallet, Asset: asset, Status: data.StartedDisbursementStatus, @@ -358,7 +348,6 @@ func Test_PatchAnchorPlatformTransactionCompletionService_PatchAPTransactionForP t.Run("doesn't patch the transaction when it's already patch as completed", func(t *testing.T) { data.DeleteAllFixtures(t, ctx, dbConnectionPool) - country := data.CreateCountryFixture(t, ctx, dbConnectionPool, "BRA", "Brazil") wallet := data.CreateWalletFixture(t, ctx, dbConnectionPool, "Wallet", "https://www.wallet.com", "www.wallet.com", "wallet://") asset := data.CreateAssetFixture(t, ctx, dbConnectionPool, "USDC", "GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVV") @@ -366,7 +355,6 @@ func Test_PatchAnchorPlatformTransactionCompletionService_PatchAPTransactionForP receiverWallet := data.CreateReceiverWalletFixture(t, ctx, dbConnectionPool, receiver.ID, wallet.ID, data.RegisteredReceiversWalletStatus) disbursement1 := data.CreateDisbursementFixture(t, ctx, dbConnectionPool, models.Disbursements, &data.Disbursement{ - Country: country, Wallet: wallet, Asset: asset, Status: data.StartedDisbursementStatus, @@ -442,7 +430,6 @@ func Test_PatchAnchorPlatformTransactionCompletionService_PatchAPTransactionsFor t.Run("doesn't mark as synced when fails patching anchor platform transaction when payment is success", func(t *testing.T) { data.DeleteAllFixtures(t, ctx, dbConnectionPool) - country := data.CreateCountryFixture(t, ctx, dbConnectionPool, "BRA", "Brazil") wallet := data.CreateWalletFixture(t, ctx, dbConnectionPool, "Wallet", "https://www.wallet.com", "www.wallet.com", "wallet://") asset := data.CreateAssetFixture(t, ctx, dbConnectionPool, "USDC", "GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVV") @@ -450,7 +437,6 @@ func Test_PatchAnchorPlatformTransactionCompletionService_PatchAPTransactionsFor receiverWallet := data.CreateReceiverWalletFixture(t, ctx, dbConnectionPool, receiver.ID, wallet.ID, data.RegisteredReceiversWalletStatus) disbursement := data.CreateDisbursementFixture(t, ctx, dbConnectionPool, models.Disbursements, &data.Disbursement{ - Country: country, Wallet: wallet, Asset: asset, Status: data.StartedDisbursementStatus, @@ -506,7 +492,6 @@ func Test_PatchAnchorPlatformTransactionCompletionService_PatchAPTransactionsFor t.Run("mark as synced when patch anchor platform transaction successfully and payment is failed", func(t *testing.T) { data.DeleteAllFixtures(t, ctx, dbConnectionPool) - country := data.CreateCountryFixture(t, ctx, dbConnectionPool, "BRA", "Brazil") wallet := data.CreateWalletFixture(t, ctx, dbConnectionPool, "Wallet", "https://www.wallet.com", "www.wallet.com", "wallet://") asset := data.CreateAssetFixture(t, ctx, dbConnectionPool, "USDC", "GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVV") @@ -514,7 +499,6 @@ func Test_PatchAnchorPlatformTransactionCompletionService_PatchAPTransactionsFor receiverWallet := data.CreateReceiverWalletFixture(t, ctx, dbConnectionPool, receiver.ID, wallet.ID, data.RegisteredReceiversWalletStatus) disbursement := data.CreateDisbursementFixture(t, ctx, dbConnectionPool, models.Disbursements, &data.Disbursement{ - Country: country, Wallet: wallet, Asset: asset, Status: data.StartedDisbursementStatus, @@ -566,7 +550,6 @@ func Test_PatchAnchorPlatformTransactionCompletionService_PatchAPTransactionsFor t.Run("marks as synced when patch anchor platform transaction successfully and payment is success", func(t *testing.T) { data.DeleteAllFixtures(t, ctx, dbConnectionPool) - country := data.CreateCountryFixture(t, ctx, dbConnectionPool, "BRA", "Brazil") wallet := data.CreateWalletFixture(t, ctx, dbConnectionPool, "Wallet", "https://www.wallet.com", "www.wallet.com", "wallet://") asset := data.CreateAssetFixture(t, ctx, dbConnectionPool, "USDC", "GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVV") @@ -574,7 +557,6 @@ func Test_PatchAnchorPlatformTransactionCompletionService_PatchAPTransactionsFor receiverWallet := data.CreateReceiverWalletFixture(t, ctx, dbConnectionPool, receiver.ID, wallet.ID, data.RegisteredReceiversWalletStatus) disbursement := data.CreateDisbursementFixture(t, ctx, dbConnectionPool, models.Disbursements, &data.Disbursement{ - Country: country, Wallet: wallet, Asset: asset, Status: data.StartedDisbursementStatus, @@ -629,7 +611,6 @@ func Test_PatchAnchorPlatformTransactionCompletionService_PatchAPTransactionsFor t.Run("doesn't patch the transaction when it's already patch as completed", func(t *testing.T) { data.DeleteAllFixtures(t, ctx, dbConnectionPool) - country := data.CreateCountryFixture(t, ctx, dbConnectionPool, "BRA", "Brazil") wallet := data.CreateWalletFixture(t, ctx, dbConnectionPool, "Wallet", "https://www.wallet.com", "www.wallet.com", "wallet://") asset := data.CreateAssetFixture(t, ctx, dbConnectionPool, "USDC", "GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVV") @@ -637,7 +618,6 @@ func Test_PatchAnchorPlatformTransactionCompletionService_PatchAPTransactionsFor receiverWallet := data.CreateReceiverWalletFixture(t, ctx, dbConnectionPool, receiver.ID, wallet.ID, data.RegisteredReceiversWalletStatus) disbursement1 := data.CreateDisbursementFixture(t, ctx, dbConnectionPool, models.Disbursements, &data.Disbursement{ - Country: country, Wallet: wallet, Asset: asset, Status: data.StartedDisbursementStatus, @@ -645,7 +625,6 @@ func Test_PatchAnchorPlatformTransactionCompletionService_PatchAPTransactionsFor }) disbursement2 := data.CreateDisbursementFixture(t, ctx, dbConnectionPool, models.Disbursements, &data.Disbursement{ - Country: country, Wallet: wallet, Asset: asset, Status: data.StartedDisbursementStatus, @@ -713,7 +692,6 @@ func Test_PatchAnchorPlatformTransactionCompletionService_PatchAPTransactionsFor t.Run("patches the transactions successfully if the other payments were failed", func(t *testing.T) { data.DeleteAllFixtures(t, ctx, dbConnectionPool) - country := data.CreateCountryFixture(t, ctx, dbConnectionPool, "BRA", "Brazil") wallet := data.CreateWalletFixture(t, ctx, dbConnectionPool, "Wallet", "https://www.wallet.com", "www.wallet.com", "wallet://") asset := data.CreateAssetFixture(t, ctx, dbConnectionPool, "USDC", "GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVV") @@ -721,7 +699,6 @@ func Test_PatchAnchorPlatformTransactionCompletionService_PatchAPTransactionsFor receiverWallet := data.CreateReceiverWalletFixture(t, ctx, dbConnectionPool, receiver.ID, wallet.ID, data.RegisteredReceiversWalletStatus) disbursement1 := data.CreateDisbursementFixture(t, ctx, dbConnectionPool, models.Disbursements, &data.Disbursement{ - Country: country, Wallet: wallet, Asset: asset, Status: data.StartedDisbursementStatus, @@ -729,7 +706,6 @@ func Test_PatchAnchorPlatformTransactionCompletionService_PatchAPTransactionsFor }) disbursement2 := data.CreateDisbursementFixture(t, ctx, dbConnectionPool, models.Disbursements, &data.Disbursement{ - Country: country, Wallet: wallet, Asset: asset, Status: data.StartedDisbursementStatus, @@ -737,7 +713,6 @@ func Test_PatchAnchorPlatformTransactionCompletionService_PatchAPTransactionsFor }) disbursement3 := data.CreateDisbursementFixture(t, ctx, dbConnectionPool, models.Disbursements, &data.Disbursement{ - Country: country, Wallet: wallet, Asset: asset, Status: data.StartedDisbursementStatus, diff --git a/internal/services/payment_from_submitter_service_test.go b/internal/services/payment_from_submitter_service_test.go index 5b7c493cc..c009bb13c 100644 --- a/internal/services/payment_from_submitter_service_test.go +++ b/internal/services/payment_from_submitter_service_test.go @@ -63,17 +63,13 @@ func Test_PaymentFromSubmitterService_SyncBatchTransactions(t *testing.T) { asset := data.CreateAssetFixture(t, ctx, dbConnectionPool, "USDC", "GABC65XJDMXTGPNZRCI6V3KOKKWVK55UEKGQLONRIVYPMEJNNQ45YOEE") - country := data.CreateCountryFixture(t, ctx, dbConnectionPool, - "FRA", - "France") // create disbursements startedDisbursement := data.CreateDisbursementFixture(t, ctx, dbConnectionPool, testCtx.sdpModel.Disbursements, &data.Disbursement{ - Name: "ready disbursement", - Status: data.StartedDisbursementStatus, - Asset: asset, - Wallet: wallet, - Country: country, + Name: "ready disbursement", + Status: data.StartedDisbursementStatus, + Asset: asset, + Wallet: wallet, }) // create disbursement receivers @@ -270,17 +266,13 @@ func Test_PaymentFromSubmitterService_SyncTransaction(t *testing.T) { asset := data.CreateAssetFixture(t, ctx, dbConnectionPool, "USDC", "GABC65XJDMXTGPNZRCI6V3KOKKWVK55UEKGQLONRIVYPMEJNNQ45YOEE") - country := data.CreateCountryFixture(t, ctx, dbConnectionPool, - "FRA", - "France") // create disbursements startedDisbursement := data.CreateDisbursementFixture(t, ctx, dbConnectionPool, testCtx.sdpModel.Disbursements, &data.Disbursement{ - Name: "ready disbursement", - Status: data.StartedDisbursementStatus, - Asset: asset, - Wallet: wallet, - Country: country, + Name: "ready disbursement", + Status: data.StartedDisbursementStatus, + Asset: asset, + Wallet: wallet, }) // create disbursement receivers @@ -578,7 +570,6 @@ func updateTSSTransactionsToError(t *testing.T, testCtx *testContext, txDataSlic func Test_PaymentFromSubmitterService_RetryingPayment(t *testing.T) { dbt := dbtest.Open(t) defer dbt.Close() - dbConnectionPool, outerErr := db.OpenDBConnectionPool(dbt.DSN) require.NoError(t, outerErr) defer dbConnectionPool.Close() @@ -588,17 +579,7 @@ func Test_PaymentFromSubmitterService_RetryingPayment(t *testing.T) { monitorService := NewPaymentFromSubmitterService(testCtx.sdpModel, dbConnectionPool) - // clean test db - data.DeleteAllPaymentsFixtures(t, ctx, dbConnectionPool) - data.DeleteAllDisbursementFixtures(t, ctx, dbConnectionPool) - data.DeleteAllReceiverWalletsFixtures(t, ctx, dbConnectionPool) - data.DeleteAllReceiversFixtures(t, ctx, dbConnectionPool) - data.DeleteAllAssetFixtures(t, ctx, dbConnectionPool) - data.DeleteAllWalletFixtures(t, ctx, dbConnectionPool) - data.DeleteAllCountryFixtures(t, ctx, dbConnectionPool) - // create fixtures - country := data.CreateCountryFixture(t, ctx, dbConnectionPool, "BRA", "Brazil") wallet := data.CreateWalletFixture(t, ctx, dbConnectionPool, "Wallet", "https://www.wallet.com", "www.wallet.com", "wallet://") asset := data.CreateAssetFixture(t, ctx, dbConnectionPool, "USDC", "GABC65XJDMXTGPNZRCI6V3KOKKWVK55UEKGQLONRIVYPMEJNNQ45YOEE") @@ -606,11 +587,10 @@ func Test_PaymentFromSubmitterService_RetryingPayment(t *testing.T) { receiverWallet := data.CreateReceiverWalletFixture(t, ctx, dbConnectionPool, receiver.ID, wallet.ID, data.RegisteredReceiversWalletStatus) disbursement := data.CreateDisbursementFixture(t, ctx, dbConnectionPool, testCtx.sdpModel.Disbursements, &data.Disbursement{ - Name: "started disbursement", - Status: data.StartedDisbursementStatus, - Asset: asset, - Wallet: wallet, - Country: country, + Name: "started disbursement", + Status: data.StartedDisbursementStatus, + Asset: asset, + Wallet: wallet, }) payment := data.CreatePaymentFixture(t, ctx, dbConnectionPool, testCtx.sdpModel.Payment, &data.Payment{ @@ -704,7 +684,6 @@ func Test_PaymentFromSubmitterService_RetryingPayment(t *testing.T) { func Test_PaymentFromSubmitterService_CompleteDisbursements(t *testing.T) { dbt := dbtest.Open(t) defer dbt.Close() - dbConnectionPool, outerErr := db.OpenDBConnectionPool(dbt.DSN) require.NoError(t, outerErr) defer dbConnectionPool.Close() @@ -714,17 +693,7 @@ func Test_PaymentFromSubmitterService_CompleteDisbursements(t *testing.T) { monitorService := NewPaymentFromSubmitterService(testCtx.sdpModel, dbConnectionPool) - // clean test db - data.DeleteAllPaymentsFixtures(t, ctx, dbConnectionPool) - data.DeleteAllDisbursementFixtures(t, ctx, dbConnectionPool) - data.DeleteAllReceiverWalletsFixtures(t, ctx, dbConnectionPool) - data.DeleteAllReceiversFixtures(t, ctx, dbConnectionPool) - data.DeleteAllAssetFixtures(t, ctx, dbConnectionPool) - data.DeleteAllWalletFixtures(t, ctx, dbConnectionPool) - data.DeleteAllCountryFixtures(t, ctx, dbConnectionPool) - // create fixtures - country := data.CreateCountryFixture(t, ctx, dbConnectionPool, "BRA", "Brazil") wallet := data.CreateWalletFixture(t, ctx, dbConnectionPool, "Wallet", "https://www.wallet.com", "www.wallet.com", "wallet://") asset := data.CreateAssetFixture(t, ctx, dbConnectionPool, "USDC", "GABC65XJDMXTGPNZRCI6V3KOKKWVK55UEKGQLONRIVYPMEJNNQ45YOEE") @@ -732,11 +701,10 @@ func Test_PaymentFromSubmitterService_CompleteDisbursements(t *testing.T) { receiverWallet := data.CreateReceiverWalletFixture(t, ctx, dbConnectionPool, receiver.ID, wallet.ID, data.RegisteredReceiversWalletStatus) disbursement := data.CreateDisbursementFixture(t, ctx, dbConnectionPool, testCtx.sdpModel.Disbursements, &data.Disbursement{ - Name: "started disbursement", - Status: data.StartedDisbursementStatus, - Asset: asset, - Wallet: wallet, - Country: country, + Name: "started disbursement", + Status: data.StartedDisbursementStatus, + Asset: asset, + Wallet: wallet, }) payment := data.CreatePaymentFixture(t, ctx, dbConnectionPool, testCtx.sdpModel.Payment, &data.Payment{ diff --git a/internal/services/payment_management_service_test.go b/internal/services/payment_management_service_test.go index dce483945..7b61447e0 100644 --- a/internal/services/payment_management_service_test.go +++ b/internal/services/payment_management_service_test.go @@ -31,15 +31,13 @@ func Test_PaymentManagementService_CancelPayment(t *testing.T) { // create fixtures wallet := data.CreateDefaultWalletFixture(t, ctx, dbConnectionPool) asset := data.GetAssetFixture(t, ctx, dbConnectionPool, data.FixtureAssetUSDC) - country := data.GetCountryFixture(t, ctx, dbConnectionPool, data.FixtureCountryUSA) // create disbursements startedDisbursement := data.CreateDisbursementFixture(t, ctx, dbConnectionPool, models.Disbursements, &data.Disbursement{ - Name: "ready disbursement", - Status: data.StartedDisbursementStatus, - Asset: asset, - Wallet: wallet, - Country: country, + Name: "ready disbursement", + Status: data.StartedDisbursementStatus, + Asset: asset, + Wallet: wallet, }) // create disbursement receivers diff --git a/internal/services/payment_to_submitter_service_test.go b/internal/services/payment_to_submitter_service_test.go index 8fa2fc734..6dbcc1c43 100644 --- a/internal/services/payment_to_submitter_service_test.go +++ b/internal/services/payment_to_submitter_service_test.go @@ -39,7 +39,6 @@ func Test_PaymentToSubmitterService_SendPaymentsMethods(t *testing.T) { eurcAsset := data.CreateAssetFixture(t, ctx, dbConnectionPool, assets.EURCAssetCode, assets.EURCAssetTestnet.Issuer) nativeAsset := data.CreateAssetFixture(t, ctx, dbConnectionPool, "XLM", "") - country := data.CreateCountryFixture(t, ctx, dbConnectionPool, "FRA", "France") wallet := data.CreateWalletFixture(t, ctx, dbConnectionPool, "My Wallet", "https://www.wallet.com", "www.wallet.com", "wallet1://") models, err := data.NewModels(dbConnectionPool) @@ -129,11 +128,10 @@ func Test_PaymentToSubmitterService_SendPaymentsMethods(t *testing.T) { defer data.DeleteAllPaymentsFixtures(t, ctx, dbConnectionPool) startedDisbursement := data.CreateDisbursementFixture(t, ctx, dbConnectionPool, models.Disbursements, &data.Disbursement{ - Name: "ready disbursement", - Status: data.StartedDisbursementStatus, - Asset: tc.asset, - Wallet: wallet, - Country: country, + Name: "ready disbursement", + Status: data.StartedDisbursementStatus, + Asset: tc.asset, + Wallet: wallet, }) receiverReady := data.CreateReceiverFixture(t, ctx, dbConnectionPool, &data.Receiver{}) @@ -446,7 +444,6 @@ func Test_PaymentToSubmitterService_ValidatePaymentReadyForSending(t *testing.T) func Test_PaymentToSubmitterService_RetryPayment(t *testing.T) { dbt := dbtest.Open(t) defer dbt.Close() - dbConnectionPool, err := db.OpenDBConnectionPool(dbt.DSN) require.NoError(t, err) defer dbConnectionPool.Close() @@ -472,17 +469,7 @@ func Test_PaymentToSubmitterService_RetryPayment(t *testing.T) { PaymentDispatcher: paymentDispatcher, }) - // clean test db - data.DeleteAllPaymentsFixtures(t, ctx, dbConnectionPool) - data.DeleteAllDisbursementFixtures(t, ctx, dbConnectionPool) - data.DeleteAllReceiverWalletsFixtures(t, ctx, dbConnectionPool) - data.DeleteAllReceiversFixtures(t, ctx, dbConnectionPool) - data.DeleteAllAssetFixtures(t, ctx, dbConnectionPool) - data.DeleteAllWalletFixtures(t, ctx, dbConnectionPool) - data.DeleteAllCountryFixtures(t, ctx, dbConnectionPool) - // create fixtures - country := data.CreateCountryFixture(t, ctx, dbConnectionPool, "BRA", "Brazil") wallet := data.CreateWalletFixture(t, ctx, dbConnectionPool, "Wallet", "https://www.wallet.com", "www.wallet.com", "wallet://") asset := data.CreateAssetFixture(t, ctx, dbConnectionPool, "USDC", "GDUCE34WW5Z34GMCEPURYANUCUP47J6NORJLKC6GJNMDLN4ZI4PMI2MG") @@ -490,11 +477,10 @@ func Test_PaymentToSubmitterService_RetryPayment(t *testing.T) { receiverWallet := data.CreateReceiverWalletFixture(t, ctx, dbConnectionPool, receiver.ID, wallet.ID, data.RegisteredReceiversWalletStatus) disbursement := data.CreateDisbursementFixture(t, ctx, dbConnectionPool, models.Disbursements, &data.Disbursement{ - Name: "started disbursement", - Status: data.StartedDisbursementStatus, - Asset: asset, - Wallet: wallet, - Country: country, + Name: "started disbursement", + Status: data.StartedDisbursementStatus, + Asset: asset, + Wallet: wallet, }) payment := data.CreatePaymentFixture(t, ctx, dbConnectionPool, models.Payment, &data.Payment{ @@ -592,13 +578,11 @@ func Test_PaymentToSubmitterService_markPaymentsAsFailed(t *testing.T) { models, err := data.NewModels(dbConnectionPool) require.NoError(t, err) asset := data.CreateAssetFixture(t, ctx, dbConnectionPool, "USDC", "GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVV") - country := data.CreateCountryFixture(t, ctx, dbConnectionPool, "FRA", "France") wallet := data.CreateWalletFixture(t, ctx, dbConnectionPool, "wallet1", "https://www.wallet.com", "www.wallet.com", "wallet1://") disbursement := data.CreateDisbursementFixture(t, ctx, dbConnectionPool, models.Disbursements, &data.Disbursement{ - Country: country, - Wallet: wallet, - Status: data.ReadyDisbursementStatus, - Asset: asset, + Wallet: wallet, + Status: data.ReadyDisbursementStatus, + Asset: asset, }) receiverReady := data.CreateReceiverFixture(t, ctx, dbConnectionPool, &data.Receiver{}) rwReady := data.CreateReceiverWalletFixture(t, ctx, dbConnectionPool, receiverReady.ID, wallet.ID, data.ReadyReceiversWalletStatus) diff --git a/internal/services/ready_payments_cancelation_service_test.go b/internal/services/ready_payments_cancelation_service_test.go index 834ea3622..218f5252c 100644 --- a/internal/services/ready_payments_cancelation_service_test.go +++ b/internal/services/ready_payments_cancelation_service_test.go @@ -17,7 +17,6 @@ import ( func Test_ReadyPaymentsCancellationService_CancelReadyPaymentsService(t *testing.T) { dbt := dbtest.Open(t) defer dbt.Close() - dbConnectionPool, err := db.OpenDBConnectionPool(dbt.DSN) require.NoError(t, err) defer dbConnectionPool.Close() @@ -28,15 +27,6 @@ func Test_ReadyPaymentsCancellationService_CancelReadyPaymentsService(t *testing service := NewReadyPaymentsCancellationService(models) ctx := context.Background() - data.DeleteAllPaymentsFixtures(t, ctx, dbConnectionPool) - data.DeleteAllDisbursementFixtures(t, ctx, dbConnectionPool) - data.DeleteAllCountryFixtures(t, ctx, dbConnectionPool) - data.DeleteAllAssetFixtures(t, ctx, dbConnectionPool) - data.DeleteAllReceiverWalletsFixtures(t, ctx, dbConnectionPool) - data.DeleteAllReceiversFixtures(t, ctx, dbConnectionPool) - data.DeleteAllWalletFixtures(t, ctx, dbConnectionPool) - - country := data.CreateCountryFixture(t, ctx, dbConnectionPool, "BRA", "Brazil") wallet := data.CreateWalletFixture(t, ctx, dbConnectionPool, "Wallet", "https://www.wallet.com", "www.wallet.com", "wallet://") asset := data.CreateAssetFixture(t, ctx, dbConnectionPool, "USDC", "GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVV") @@ -44,7 +34,6 @@ func Test_ReadyPaymentsCancellationService_CancelReadyPaymentsService(t *testing receiverWallet := data.CreateReceiverWalletFixture(t, ctx, dbConnectionPool, receiver.ID, wallet.ID, data.RegisteredReceiversWalletStatus) disbursement := data.CreateDisbursementFixture(t, ctx, dbConnectionPool, models.Disbursements, &data.Disbursement{ - Country: country, Wallet: wallet, Asset: asset, Status: data.ReadyDisbursementStatus, diff --git a/internal/services/send_receiver_wallets_invite_service_test.go b/internal/services/send_receiver_wallets_invite_service_test.go index 2115db7b3..b71b9f5ba 100644 --- a/internal/services/send_receiver_wallets_invite_service_test.go +++ b/internal/services/send_receiver_wallets_invite_service_test.go @@ -71,8 +71,6 @@ func Test_SendReceiverWalletInviteService_SendInvite(t *testing.T) { models, err := data.NewModels(dbConnectionPool) require.NoError(t, err) - country := data.CreateCountryFixture(t, ctx, dbConnectionPool, "ATL", "Atlantis") - wallet1 := data.CreateWalletFixture(t, ctx, dbConnectionPool, "Wallet1", "https://wallet1.com", "www.wallet1.com", "wallet1://sdp") wallet2 := data.CreateWalletFixture(t, ctx, dbConnectionPool, "Wallet2", "https://wallet2.com", "www.wallet2.com", "wallet2://sdp") @@ -89,17 +87,15 @@ func Test_SendReceiverWalletInviteService_SendInvite(t *testing.T) { }) disbursement1 := data.CreateDisbursementFixture(t, ctx, dbConnectionPool, models.Disbursements, &data.Disbursement{ - Country: country, - Wallet: wallet1, - Status: data.ReadyDisbursementStatus, - Asset: asset1, + Wallet: wallet1, + Status: data.ReadyDisbursementStatus, + Asset: asset1, }) disbursement2 := data.CreateDisbursementFixture(t, ctx, dbConnectionPool, models.Disbursements, &data.Disbursement{ - Country: country, - Wallet: wallet2, - Status: data.ReadyDisbursementStatus, - Asset: asset2, + Wallet: wallet2, + Status: data.ReadyDisbursementStatus, + Asset: asset2, }) t.Run("returns error when service has wrong setup", func(t *testing.T) { @@ -797,7 +793,6 @@ func Test_SendReceiverWalletInviteService_SendInvite(t *testing.T) { t.Run("send disbursement invite successfully", func(t *testing.T) { disbursement3 := data.CreateDisbursementFixture(t, ctx, dbConnectionPool, models.Disbursements, &data.Disbursement{ - Country: country, Wallet: wallet1, Status: data.ReadyDisbursementStatus, Asset: asset1, @@ -805,7 +800,6 @@ func Test_SendReceiverWalletInviteService_SendInvite(t *testing.T) { }) disbursement4 := data.CreateDisbursementFixture(t, ctx, dbConnectionPool, models.Disbursements, &data.Disbursement{ - Country: country, Wallet: wallet2, Status: data.ReadyDisbursementStatus, Asset: asset2, @@ -950,7 +944,6 @@ func Test_SendReceiverWalletInviteService_SendInvite(t *testing.T) { t.Run("successfully resend the disbursement invitation SMS", func(t *testing.T) { disbursement := data.CreateDisbursementFixture(t, ctx, dbConnectionPool, models.Disbursements, &data.Disbursement{ - Country: country, Wallet: wallet1, Status: data.ReadyDisbursementStatus, Asset: asset1, diff --git a/internal/statistics/calculate_statistics_test.go b/internal/statistics/calculate_statistics_test.go index 13b7f404a..f0739e9f0 100644 --- a/internal/statistics/calculate_statistics_test.go +++ b/internal/statistics/calculate_statistics_test.go @@ -97,7 +97,6 @@ func TestCalculateStatistics(t *testing.T) { require.NoError(t, err) asset1 := data.CreateAssetFixture(t, ctx, dbConnectionPool, "USDC", "GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVV") - country := data.CreateCountryFixture(t, ctx, dbConnectionPool, "FRA", "France") wallet := data.CreateWalletFixture(t, ctx, dbConnectionPool, "wallet1", "https://www.wallet.com", "www.wallet.com", "wallet1://") receiver1 := data.CreateReceiverFixture(t, ctx, dbConnectionPool, &data.Receiver{}) @@ -107,11 +106,10 @@ func TestCalculateStatistics(t *testing.T) { receiverWallet2 := data.CreateReceiverWalletFixture(t, ctx, dbConnectionPool, receiver2.ID, wallet.ID, data.DraftReceiversWalletStatus) disbursement1 := data.CreateDisbursementFixture(t, ctx, dbConnectionPool, models.Disbursements, &data.Disbursement{ - Name: "disbursement 1", - Status: data.CompletedDisbursementStatus, - Asset: asset1, - Wallet: wallet, - Country: country, + Name: "disbursement 1", + Status: data.CompletedDisbursementStatus, + Asset: asset1, + Wallet: wallet, }) stellarTransactionID, err := utils.RandomString(64) @@ -220,11 +218,10 @@ func TestCalculateStatistics(t *testing.T) { asset2 := data.CreateAssetFixture(t, ctx, dbConnectionPool, "EURT", "GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVV") disbursement2 := data.CreateDisbursementFixture(t, ctx, dbConnectionPool, models.Disbursements, &data.Disbursement{ - Name: "disbursement 2", - Status: data.CompletedDisbursementStatus, - Asset: asset2, - Wallet: wallet, - Country: country, + Name: "disbursement 2", + Status: data.CompletedDisbursementStatus, + Asset: asset2, + Wallet: wallet, }) stellarTransactionID, err = utils.RandomString(64) @@ -401,7 +398,6 @@ func Test_checkIfDisbursementExists(t *testing.T) { t.Run("disbursement exists", func(t *testing.T) { asset := data.CreateAssetFixture(t, ctx, dbConnectionPool, "USDC", "GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVV") - country := data.CreateCountryFixture(t, ctx, dbConnectionPool, "FRA", "France") wallet := data.CreateWalletFixture(t, ctx, dbConnectionPool, "wallet1", "https://www.wallet.com", "www.wallet.com", "wallet1://") disbursement := data.CreateDisbursementFixture(t, ctx, dbConnectionPool, model.Disbursements, &data.Disbursement{ @@ -412,9 +408,8 @@ func Test_checkIfDisbursementExists(t *testing.T) { UserID: "user1", }, }, - Asset: asset, - Country: country, - Wallet: wallet, + Asset: asset, + Wallet: wallet, }) exists, err := checkIfDisbursementExists(context.Background(), dbConnectionPool, disbursement.ID) require.NoError(t, err) diff --git a/stellar-multitenant/internal/httphandler/tenants_handler_test.go b/stellar-multitenant/internal/httphandler/tenants_handler_test.go index 2011ff56d..8a8aa7901 100644 --- a/stellar-multitenant/internal/httphandler/tenants_handler_test.go +++ b/stellar-multitenant/internal/httphandler/tenants_handler_test.go @@ -348,7 +348,6 @@ func Test_TenantHandler_Post(t *testing.T) { "auth_users", "circle_client_config", "circle_transfer_requests", - "countries", "disbursements", "messages", "organizations", @@ -763,14 +762,12 @@ func Test_TenantHandler_Patch_error(t *testing.T) { name: "400 response if attempting to deactivate a tenant with active payments", initialStatus: tenant.ActivatedTenantStatus, prepareMocksFn: func() { - country := data.CreateCountryFixture(t, ctx, dbConnectionPool, "FRA", "France") wallet := data.CreateWalletFixture(t, ctx, dbConnectionPool, "wallet", "https://www.wallet.com", "www.wallet.com", "wallet://") asset := data.CreateAssetFixture(t, ctx, dbConnectionPool, "USDC", "GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVV") disbursement := data.CreateDisbursementFixture(t, ctx, dbConnectionPool, models.Disbursements, &data.Disbursement{ - Country: country, - Wallet: wallet, - Status: data.ReadyDisbursementStatus, - Asset: asset, + Wallet: wallet, + Status: data.ReadyDisbursementStatus, + Asset: asset, }) receiver := data.CreateReceiverFixture(t, ctx, dbConnectionPool, &data.Receiver{}) rw := data.CreateReceiverWalletFixture(t, ctx, dbConnectionPool, receiver.ID, wallet.ID, data.DraftReceiversWalletStatus) diff --git a/stellar-multitenant/internal/provisioning/manager_test.go b/stellar-multitenant/internal/provisioning/manager_test.go index e0e95f79c..be4e6ea75 100644 --- a/stellar-multitenant/internal/provisioning/manager_test.go +++ b/stellar-multitenant/internal/provisioning/manager_test.go @@ -455,7 +455,6 @@ func getExpectedTablesAfterMigrationsApplied() []string { "auth_users", "circle_client_config", "circle_transfer_requests", - "countries", "disbursements", "messages", "organizations", @@ -549,7 +548,6 @@ func Test_Manager_RollbackOnErrors(t *testing.T) { // Needed for UpdateTenantConfig: tStatus := tenant.ProvisionedTenantStatus updatedTnt := tnt - updatedTnt.DistributionAccountAddress = &distAccAddress tntManagerMock. On("UpdateTenantConfig", ctx, &tenant.TenantUpdate{ ID: updatedTnt.ID, diff --git a/stellar-multitenant/internal/services/status_change_validator_test.go b/stellar-multitenant/internal/services/status_change_validator_test.go index 85cd6fedf..48f5d58fb 100644 --- a/stellar-multitenant/internal/services/status_change_validator_test.go +++ b/stellar-multitenant/internal/services/status_change_validator_test.go @@ -73,14 +73,12 @@ func Test_ValidateStatus(t *testing.T) { }).Return(&tenant.Tenant{ID: tntID, Status: tenant.ActivatedTenantStatus}, nil).Once() }, createFixtures: func() { - country := data.CreateCountryFixture(t, ctx, dbConnectionPool, "FRA", "France") wallet := data.CreateWalletFixture(t, ctx, dbConnectionPool, "wallet", "https://www.wallet.com", "www.wallet.com", "wallet://") asset := data.CreateAssetFixture(t, ctx, dbConnectionPool, "USDC", "GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVV") disbursement := data.CreateDisbursementFixture(t, ctx, dbConnectionPool, models.Disbursements, &data.Disbursement{ - Country: country, - Wallet: wallet, - Status: data.ReadyDisbursementStatus, - Asset: asset, + Wallet: wallet, + Status: data.ReadyDisbursementStatus, + Asset: asset, }) receiver := data.CreateReceiverFixture(t, ctx, dbConnectionPool, &data.Receiver{}) rw := data.CreateReceiverWalletFixture(t, ctx, dbConnectionPool, receiver.ID, wallet.ID, data.DraftReceiversWalletStatus)