Skip to content

Commit 4b5bf5a

Browse files
authored
Move buy module chat messages into a new Kin Purchases chat (#75)
1 parent cef4806 commit 4b5bf5a

File tree

5 files changed

+87
-54
lines changed

5 files changed

+87
-54
lines changed

pkg/code/async/geyser/external_deposit.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -273,15 +273,15 @@ func processPotentialExternalDeposit(ctx context.Context, conf *conf, data code_
273273
return errors.Wrap(err, "error creating chat message")
274274
}
275275

276-
canPush, err := chat_util.SendCodeTeamMessage(ctx, data, chatMessageReceiver, chatMessage)
276+
canPush, err := chat_util.SendKinPurchasesMessage(ctx, data, chatMessageReceiver, chatMessage)
277277
switch err {
278278
case nil:
279279
if canPush {
280280
push.SendChatMessagePushNotification(
281281
ctx,
282282
data,
283283
pusher,
284-
chat_util.CodeTeamName,
284+
chat_util.KinPurchasesName,
285285
chatMessageReceiver,
286286
chatMessage,
287287
)
@@ -692,15 +692,15 @@ func delayedUsdcDepositProcessing(
692692
return
693693
}
694694

695-
canPush, err := chat_util.SendCodeTeamMessage(ctx, data, ownerAccount, chatMessage)
695+
canPush, err := chat_util.SendKinPurchasesMessage(ctx, data, ownerAccount, chatMessage)
696696
switch err {
697697
case nil:
698698
if canPush {
699699
push.SendChatMessagePushNotification(
700700
ctx,
701701
data,
702702
pusher,
703-
chat_util.CodeTeamName,
703+
chat_util.KinPurchasesName,
704704
ownerAccount,
705705
chatMessage,
706706
)

pkg/code/chat/chat.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import "github.com/code-payments/code-server/pkg/code/localization"
55
const (
66
CashTransactionsName = "Cash Transactions" // Renamed to Cash Payments on client
77
CodeTeamName = "Code Team"
8+
KinPurchasesName = "Kin Purchases"
89
PaymentsName = "Payments" // Renamed to Web Payments on client
910

1011
// Test chats used for unit/integration testing only
@@ -28,6 +29,11 @@ var (
2829
CanMute: true,
2930
CanUnsubscribe: false,
3031
},
32+
KinPurchasesName: {
33+
TitleLocalizationKey: localization.ChatTitleKinPurchases,
34+
CanMute: true,
35+
CanUnsubscribe: false,
36+
},
3137
PaymentsName: {
3238
TitleLocalizationKey: localization.ChatTitlePayments,
3339
CanMute: true,

pkg/code/chat/message_code_team.go

Lines changed: 0 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,10 @@ package chat
22

33
import (
44
"context"
5-
"time"
65

76
"github.com/pkg/errors"
87

98
chatpb "github.com/code-payments/code-protobuf-api/generated/go/chat/v1"
10-
transactionpb "github.com/code-payments/code-protobuf-api/generated/go/transaction/v2"
119

1210
"github.com/code-payments/code-server/pkg/code/common"
1311
code_data "github.com/code-payments/code-server/pkg/code/data"
@@ -42,54 +40,6 @@ func ToReferralBonusMessage(intentRecord *intent.Record) (*chatpb.ChatMessage, e
4240
return newIncentiveMessage(localization.ChatMessageReferralBonus, intentRecord)
4341
}
4442

45-
// ToUsdcDepositedMessage turns details of a USDC deposit transaction into a chat
46-
// message to be inserted into the Code Team chat.
47-
func ToUsdcDepositedMessage(signature string, ts time.Time) (*chatpb.ChatMessage, error) {
48-
// todo: Don't have a way of propagating quarks, but that's probably ok since
49-
// this is a temporary message for testing swaps.
50-
content := []*chatpb.Content{
51-
{
52-
Type: &chatpb.Content_Localized{
53-
Localized: &chatpb.LocalizedContent{
54-
KeyOrText: localization.ChatMessageUsdcDeposited,
55-
},
56-
},
57-
},
58-
}
59-
return newProtoChatMessage(signature, content, ts)
60-
}
61-
62-
// ToKinAvailableForUseMessage turns details of a USDC swap transaction into a
63-
// chat message to be inserted into the Code Team chat.
64-
func ToKinAvailableForUseMessage(signature string, ts time.Time, purchases ...*transactionpb.ExchangeDataWithoutRate) (*chatpb.ChatMessage, error) {
65-
if len(purchases) == 0 {
66-
return nil, errors.New("no purchases for kin available chat message")
67-
}
68-
69-
content := []*chatpb.Content{
70-
{
71-
Type: &chatpb.Content_Localized{
72-
Localized: &chatpb.LocalizedContent{
73-
KeyOrText: localization.ChatMessageKinAvailableForUse,
74-
},
75-
},
76-
},
77-
}
78-
for _, purchase := range purchases {
79-
content = append(content, &chatpb.Content{
80-
Type: &chatpb.Content_ExchangeData{
81-
ExchangeData: &chatpb.ExchangeDataContent{
82-
Verb: chatpb.ExchangeDataContent_PURCHASED,
83-
ExchangeData: &chatpb.ExchangeDataContent_Partial{
84-
Partial: purchase,
85-
},
86-
},
87-
},
88-
})
89-
}
90-
return newProtoChatMessage(signature, content, ts)
91-
}
92-
9343
func newIncentiveMessage(localizedTextKey string, intentRecord *intent.Record) (*chatpb.ChatMessage, error) {
9444
exchangeData, ok := getExchangeDataFromIntent(intentRecord)
9545
if !ok {
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
package chat
2+
3+
import (
4+
"context"
5+
"time"
6+
7+
"github.com/pkg/errors"
8+
9+
chatpb "github.com/code-payments/code-protobuf-api/generated/go/chat/v1"
10+
transactionpb "github.com/code-payments/code-protobuf-api/generated/go/transaction/v2"
11+
12+
"github.com/code-payments/code-server/pkg/code/common"
13+
code_data "github.com/code-payments/code-server/pkg/code/data"
14+
"github.com/code-payments/code-server/pkg/code/data/chat"
15+
"github.com/code-payments/code-server/pkg/code/localization"
16+
)
17+
18+
// SendKinPurchasesMessage sends a message to the Kin Purchases chat.
19+
func SendKinPurchasesMessage(ctx context.Context, data code_data.Provider, receiver *common.Account, chatMessage *chatpb.ChatMessage) (bool, error) {
20+
return SendChatMessage(
21+
ctx,
22+
data,
23+
KinPurchasesName,
24+
chat.ChatTypeInternal,
25+
true,
26+
receiver,
27+
chatMessage,
28+
false,
29+
)
30+
}
31+
32+
// ToUsdcDepositedMessage turns details of a USDC deposit transaction into a chat
33+
// message to be inserted into the Kin Purchases chat.
34+
func ToUsdcDepositedMessage(signature string, ts time.Time) (*chatpb.ChatMessage, error) {
35+
content := []*chatpb.Content{
36+
{
37+
Type: &chatpb.Content_Localized{
38+
Localized: &chatpb.LocalizedContent{
39+
KeyOrText: localization.ChatMessageUsdcDeposited,
40+
},
41+
},
42+
},
43+
}
44+
return newProtoChatMessage(signature, content, ts)
45+
}
46+
47+
// ToKinAvailableForUseMessage turns details of a USDC swap transaction into a
48+
// chat message to be inserted into the Kin Purchases chat.
49+
func ToKinAvailableForUseMessage(signature string, ts time.Time, purchases ...*transactionpb.ExchangeDataWithoutRate) (*chatpb.ChatMessage, error) {
50+
if len(purchases) == 0 {
51+
return nil, errors.New("no purchases for kin available chat message")
52+
}
53+
54+
content := []*chatpb.Content{
55+
{
56+
Type: &chatpb.Content_Localized{
57+
Localized: &chatpb.LocalizedContent{
58+
KeyOrText: localization.ChatMessageKinAvailableForUse,
59+
},
60+
},
61+
},
62+
}
63+
for _, purchase := range purchases {
64+
content = append(content, &chatpb.Content{
65+
Type: &chatpb.Content_ExchangeData{
66+
ExchangeData: &chatpb.ExchangeDataContent{
67+
Verb: chatpb.ExchangeDataContent_PURCHASED,
68+
ExchangeData: &chatpb.ExchangeDataContent_Partial{
69+
Partial: purchase,
70+
},
71+
},
72+
},
73+
})
74+
}
75+
return newProtoChatMessage(signature, content, ts)
76+
}

pkg/code/localization/keys.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ const (
3636

3737
ChatTitleCashTransactions = "title.chat.cashTransactions"
3838
ChatTitleCodeTeam = "title.chat.codeTeam"
39+
ChatTitleKinPurchases = "title.chat.kinPurchases"
3940
ChatTitlePayments = "title.chat.payments"
4041

4142
// Message Bodies

0 commit comments

Comments
 (0)