Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions api/dbv1/get_users.sql.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion api/dbv1/models.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 4 additions & 4 deletions api/dbv1/queries/get_users.sql
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,7 @@ SELECT

has_collectibles,
allow_ai_attribution,
preferred_coin_flair_mint,
coin_flair_mint,

(
SELECT JSON_BUILD_OBJECT(
Expand All @@ -148,17 +148,17 @@ SELECT
FROM artist_coins
WHERE artist_coins.mint =
-- User explicitly disabled flair
CASE WHEN (u.preferred_coin_flair_mint = '') THEN NULL
CASE WHEN (u.coin_flair_mint = '') THEN NULL
ELSE COALESCE(
-- Use preferred flair if valid artist coin and user has a balance
CASE WHEN (u.preferred_coin_flair_mint IS NOT NULL) THEN
CASE WHEN (u.coin_flair_mint IS NOT NULL) THEN
(
SELECT sol_user_balances.mint
FROM sol_user_balances
JOIN artist_coins ON artist_coins.mint = sol_user_balances.mint
WHERE sol_user_balances.user_id = u.user_id
AND sol_user_balances.balance > 0
AND sol_user_balances.mint = u.preferred_coin_flair_mint
AND sol_user_balances.mint = u.coin_flair_mint
LIMIT 1
)
ELSE NULL
Expand Down
2 changes: 1 addition & 1 deletion api/swagger/swagger-v1-full.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5495,7 +5495,7 @@ components:
ticker:
type: string
description: The coin symbol/ticker
preferred_coin_flair_mint:
coin_flair_mint:
type: string
bio:
type: string
Expand Down
42 changes: 21 additions & 21 deletions api/v1_user_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -62,24 +62,24 @@ func TestGetUserCoinBadges(t *testing.T) {
"handle": "stereosteve",
},
{
"user_id": 5,
"handle": "user5",
"preferred_coin_flair_mint": "test_mint_address_124", // Prefers STEVE
"user_id": 5,
"handle": "user5",
"coin_flair_mint": "test_mint_address_124", // Prefers STEVE
},
{
"user_id": 6,
"handle": "user6",
"preferred_coin_flair_mint": "test_mint_address_123", // Prefers TESTCOIN but has zero balance
"user_id": 6,
"handle": "user6",
"coin_flair_mint": "test_mint_address_123", // Prefers TESTCOIN but has zero balance
},
{
"user_id": 7,
"handle": "user7",
"preferred_coin_flair_mint": "", // Empty string - should show no badge
"user_id": 7,
"handle": "user7",
"coin_flair_mint": "", // Empty string - should show no badge
},
{
"user_id": 8,
"handle": "user8",
"preferred_coin_flair_mint": "test_mint_address_124", // Prefers STEVE over their own coin
"user_id": 8,
"handle": "user8",
"coin_flair_mint": "test_mint_address_124", // Prefers STEVE over their own coin
},
},
"artist_coins": {
Expand Down Expand Up @@ -226,7 +226,7 @@ func TestGetUserCoinBadges(t *testing.T) {
assert.Equal(t, 200, status)

jsonAssert(t, body, map[string]any{
"data.0.preferred_coin_flair_mint": nil,
"data.0.coin_flair_mint": nil,
"data.0.artist_coin_badge.mint": "test_mint_address_123",
"data.0.artist_coin_badge.ticker": "TESTCOIN",
"data.0.artist_coin_badge.logo_uri": "https://example.com/test-logo.png",
Expand All @@ -239,8 +239,8 @@ func TestGetUserCoinBadges(t *testing.T) {
assert.Equal(t, 200, status)

jsonAssert(t, body, map[string]any{
"data.0.preferred_coin_flair_mint": nil,
"data.0.artist_coin_badge": nil,
"data.0.coin_flair_mint": nil,
"data.0.artist_coin_badge": nil,
})
}

Expand All @@ -250,7 +250,7 @@ func TestGetUserCoinBadges(t *testing.T) {
assert.Equal(t, 200, status)

jsonAssert(t, body, map[string]any{
"data.0.preferred_coin_flair_mint": nil,
"data.0.coin_flair_mint": nil,
"data.0.artist_coin_badge.mint": "test_mint_address_123",
"data.0.artist_coin_badge.ticker": "TESTCOIN",
"data.0.artist_coin_badge.logo_uri": "https://example.com/test-logo.png",
Expand All @@ -263,7 +263,7 @@ func TestGetUserCoinBadges(t *testing.T) {
assert.Equal(t, 200, status)

jsonAssert(t, body, map[string]any{
"data.0.preferred_coin_flair_mint": nil,
"data.0.coin_flair_mint": nil,
"data.0.artist_coin_badge.mint": "test_mint_address_124",
"data.0.artist_coin_badge.ticker": "STEVE",
"data.0.artist_coin_badge.logo_uri": "https://example.com/steve-logo.png",
Expand All @@ -276,7 +276,7 @@ func TestGetUserCoinBadges(t *testing.T) {
assert.Equal(t, 200, status)

jsonAssert(t, body, map[string]any{
"data.0.preferred_coin_flair_mint": "test_mint_address_124",
"data.0.coin_flair_mint": "test_mint_address_124",
"data.0.artist_coin_badge.mint": "test_mint_address_124",
"data.0.artist_coin_badge.ticker": "STEVE",
"data.0.artist_coin_badge.logo_uri": "https://example.com/steve-logo.png",
Expand All @@ -289,7 +289,7 @@ func TestGetUserCoinBadges(t *testing.T) {
assert.Equal(t, 200, status)

jsonAssert(t, body, map[string]any{
"data.0.preferred_coin_flair_mint": "test_mint_address_123",
"data.0.coin_flair_mint": "test_mint_address_123",
"data.0.artist_coin_badge.mint": "test_mint_address_124",
"data.0.artist_coin_badge.ticker": "STEVE",
"data.0.artist_coin_badge.logo_uri": "https://example.com/steve-logo.png",
Expand All @@ -302,8 +302,8 @@ func TestGetUserCoinBadges(t *testing.T) {
assert.Equal(t, 200, status)

jsonAssert(t, body, map[string]any{
"data.0.preferred_coin_flair_mint": "",
"data.0.artist_coin_badge": nil,
"data.0.coin_flair_mint": "",
"data.0.artist_coin_badge": nil,
})
}

Expand Down
4 changes: 2 additions & 2 deletions ddl/migrations/0175_add_user_coin_badge_preference.sql
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
BEGIN;

ALTER TABLE users ADD COLUMN IF NOT EXISTS preferred_coin_flair_mint TEXT DEFAULT NULL;
COMMENT ON COLUMN users.preferred_coin_flair_mint IS 'The mint of the coin which the user has selected as their preferred flair. NULL for auto, empty string for none.';
ALTER TABLE users ADD COLUMN IF NOT EXISTS coin_flair_mint TEXT DEFAULT NULL;
COMMENT ON COLUMN users.coin_flair_mint IS 'The mint of the coin which the user has selected as their preferred flair. NULL for auto, empty string for none.';

COMMIT;
6 changes: 3 additions & 3 deletions sql/01_schema.sql
Original file line number Diff line number Diff line change
Expand Up @@ -8212,15 +8212,15 @@ CREATE TABLE public.users (
website character varying,
donation character varying,
profile_type public.profile_type_enum,
preferred_coin_flair_mint text
coin_flair_mint text
);


--
-- Name: COLUMN users.preferred_coin_flair_mint; Type: COMMENT; Schema: public; Owner: -
-- Name: COLUMN users.coin_flair_mint; Type: COMMENT; Schema: public; Owner: -
--

COMMENT ON COLUMN public.users.preferred_coin_flair_mint IS 'The mint of the coin which the user has selected as their preferred flair. NULL for auto, empty string for none.';
COMMENT ON COLUMN public.users.coin_flair_mint IS 'The mint of the coin which the user has selected as their preferred flair. NULL for auto, empty string for none.';


--
Expand Down
Loading