Merge branch 'staging' into hotfix/deployment
This commit is contained in:
@@ -16,6 +16,27 @@ const (
|
|||||||
CampaignTypeMixed CampaignType = "MIXED"
|
CampaignTypeMixed CampaignType = "MIXED"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// legacyCampaignTokens is what COINS was called before tokens became EnakCoin
|
||||||
|
// (docs/prd-point-coin.md §10). Requests may still send it; it is stored as COINS.
|
||||||
|
const legacyCampaignTokens = "TOKENS"
|
||||||
|
|
||||||
|
// NormalizeCampaignType maps the legacy TOKENS to COINS and leaves anything else as is.
|
||||||
|
func NormalizeCampaignType(t string) CampaignType {
|
||||||
|
if t == legacyCampaignTokens {
|
||||||
|
return CampaignTypeCoins
|
||||||
|
}
|
||||||
|
return CampaignType(t)
|
||||||
|
}
|
||||||
|
|
||||||
|
// NormalizeCampaignRewardType maps the legacy TOKENS to COINS and leaves anything
|
||||||
|
// else as is.
|
||||||
|
func NormalizeCampaignRewardType(t string) CampaignRewardType {
|
||||||
|
if t == legacyCampaignTokens {
|
||||||
|
return CampaignRewardTypeCoins
|
||||||
|
}
|
||||||
|
return CampaignRewardType(t)
|
||||||
|
}
|
||||||
|
|
||||||
type RuleType string
|
type RuleType string
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
|||||||
@@ -0,0 +1,18 @@
|
|||||||
|
package entities
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"github.com/stretchr/testify/assert"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestNormalizeCampaignTypesMapsLegacyTokensToCoins(t *testing.T) {
|
||||||
|
assert.Equal(t, CampaignTypeCoins, NormalizeCampaignType("TOKENS"))
|
||||||
|
assert.Equal(t, CampaignTypeCoins, NormalizeCampaignType("COINS"))
|
||||||
|
assert.Equal(t, CampaignTypePoints, NormalizeCampaignType("POINTS"))
|
||||||
|
assert.Equal(t, CampaignType(""), NormalizeCampaignType(""), "an empty filter stays empty")
|
||||||
|
|
||||||
|
assert.Equal(t, CampaignRewardTypeCoins, NormalizeCampaignRewardType("TOKENS"))
|
||||||
|
assert.Equal(t, CampaignRewardTypeReward, NormalizeCampaignRewardType("REWARD"))
|
||||||
|
assert.Equal(t, CampaignRewardType(""), NormalizeCampaignRewardType(""))
|
||||||
|
}
|
||||||
@@ -71,7 +71,7 @@ func ToCampaignEntity(request *contract.CreateCampaignRequest) *entities.Campaig
|
|||||||
return &entities.Campaign{
|
return &entities.Campaign{
|
||||||
Name: request.Name,
|
Name: request.Name,
|
||||||
Description: request.Description,
|
Description: request.Description,
|
||||||
Type: entities.CampaignType(request.Type),
|
Type: entities.NormalizeCampaignType(request.Type),
|
||||||
StartDate: request.StartDate,
|
StartDate: request.StartDate,
|
||||||
EndDate: request.EndDate,
|
EndDate: request.EndDate,
|
||||||
IsActive: request.IsActive,
|
IsActive: request.IsActive,
|
||||||
@@ -91,7 +91,7 @@ func ToCampaignEntityFromUpdate(request *contract.UpdateCampaignRequest) *entiti
|
|||||||
ID: request.ID,
|
ID: request.ID,
|
||||||
Name: request.Name,
|
Name: request.Name,
|
||||||
Description: request.Description,
|
Description: request.Description,
|
||||||
Type: entities.CampaignType(request.Type),
|
Type: entities.NormalizeCampaignType(request.Type),
|
||||||
StartDate: request.StartDate,
|
StartDate: request.StartDate,
|
||||||
EndDate: request.EndDate,
|
EndDate: request.EndDate,
|
||||||
IsActive: request.IsActive,
|
IsActive: request.IsActive,
|
||||||
@@ -118,7 +118,7 @@ func ToCampaignRuleEntity(request *contract.CampaignRuleStruct, campaignID uuid.
|
|||||||
CampaignID: campaignID,
|
CampaignID: campaignID,
|
||||||
RuleType: entities.RuleType(request.RuleType),
|
RuleType: entities.RuleType(request.RuleType),
|
||||||
ConditionValue: request.ConditionValue,
|
ConditionValue: request.ConditionValue,
|
||||||
RewardType: entities.CampaignRewardType(request.RewardType),
|
RewardType: entities.NormalizeCampaignRewardType(request.RewardType),
|
||||||
RewardValue: request.RewardValue,
|
RewardValue: request.RewardValue,
|
||||||
RewardSubtype: rewardSubtype,
|
RewardSubtype: rewardSubtype,
|
||||||
RewardRefID: request.RewardRefID,
|
RewardRefID: request.RewardRefID,
|
||||||
@@ -142,7 +142,7 @@ func ToCampaignRuleEntityFromUpdate(request *contract.CampaignRuleStruct, campai
|
|||||||
CampaignID: campaignID,
|
CampaignID: campaignID,
|
||||||
RuleType: entities.RuleType(request.RuleType),
|
RuleType: entities.RuleType(request.RuleType),
|
||||||
ConditionValue: request.ConditionValue,
|
ConditionValue: request.ConditionValue,
|
||||||
RewardType: entities.CampaignRewardType(request.RewardType),
|
RewardType: entities.NormalizeCampaignRewardType(request.RewardType),
|
||||||
RewardValue: request.RewardValue,
|
RewardValue: request.RewardValue,
|
||||||
RewardSubtype: rewardSubtype,
|
RewardSubtype: rewardSubtype,
|
||||||
RewardRefID: request.RewardRefID,
|
RewardRefID: request.RewardRefID,
|
||||||
|
|||||||
@@ -70,7 +70,7 @@ func (p *campaignProcessor) ListCampaigns(ctx context.Context, req *contract.Lis
|
|||||||
Page: req.Page,
|
Page: req.Page,
|
||||||
Limit: req.Limit,
|
Limit: req.Limit,
|
||||||
Search: req.Search,
|
Search: req.Search,
|
||||||
Type: req.Type,
|
Type: string(entities.NormalizeCampaignType(req.Type)),
|
||||||
IsActive: req.IsActive,
|
IsActive: req.IsActive,
|
||||||
ShowOnApp: req.ShowOnApp,
|
ShowOnApp: req.ShowOnApp,
|
||||||
StartDate: req.StartDate,
|
StartDate: req.StartDate,
|
||||||
@@ -178,7 +178,7 @@ func (p *campaignRuleProcessor) CreateCampaignRule(ctx context.Context, req *con
|
|||||||
CampaignID: req.CampaignID,
|
CampaignID: req.CampaignID,
|
||||||
RuleType: entities.RuleType(req.RuleType),
|
RuleType: entities.RuleType(req.RuleType),
|
||||||
ConditionValue: req.ConditionValue,
|
ConditionValue: req.ConditionValue,
|
||||||
RewardType: entities.CampaignRewardType(req.RewardType),
|
RewardType: entities.NormalizeCampaignRewardType(req.RewardType),
|
||||||
RewardValue: req.RewardValue,
|
RewardValue: req.RewardValue,
|
||||||
RewardSubtype: (*entities.RewardSubtype)(req.RewardSubtype),
|
RewardSubtype: (*entities.RewardSubtype)(req.RewardSubtype),
|
||||||
RewardRefID: req.RewardRefID,
|
RewardRefID: req.RewardRefID,
|
||||||
@@ -218,7 +218,7 @@ func (p *campaignRuleProcessor) ListCampaignRules(ctx context.Context, req *cont
|
|||||||
Limit: req.Limit,
|
Limit: req.Limit,
|
||||||
CampaignID: req.CampaignID,
|
CampaignID: req.CampaignID,
|
||||||
RuleType: req.RuleType,
|
RuleType: req.RuleType,
|
||||||
RewardType: req.RewardType,
|
RewardType: string(entities.NormalizeCampaignRewardType(req.RewardType)),
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get from repository
|
// Get from repository
|
||||||
@@ -247,7 +247,7 @@ func (p *campaignRuleProcessor) UpdateCampaignRule(ctx context.Context, req *con
|
|||||||
CampaignID: req.CampaignID,
|
CampaignID: req.CampaignID,
|
||||||
RuleType: entities.RuleType(req.RuleType),
|
RuleType: entities.RuleType(req.RuleType),
|
||||||
ConditionValue: req.ConditionValue,
|
ConditionValue: req.ConditionValue,
|
||||||
RewardType: entities.CampaignRewardType(req.RewardType),
|
RewardType: entities.NormalizeCampaignRewardType(req.RewardType),
|
||||||
RewardValue: req.RewardValue,
|
RewardValue: req.RewardValue,
|
||||||
RewardSubtype: (*entities.RewardSubtype)(req.RewardSubtype),
|
RewardSubtype: (*entities.RewardSubtype)(req.RewardSubtype),
|
||||||
RewardRefID: req.RewardRefID,
|
RewardRefID: req.RewardRefID,
|
||||||
|
|||||||
@@ -99,6 +99,10 @@ func (p *GamePlayProcessor) ListGamePlays(ctx context.Context, query *models.Lis
|
|||||||
}
|
}
|
||||||
|
|
||||||
offset := (query.Page - 1) * query.Limit
|
offset := (query.Page - 1) * query.Limit
|
||||||
|
// The column was renamed; the old name still sorts the same way.
|
||||||
|
if query.SortBy == "token_used" {
|
||||||
|
query.SortBy = "coins_used"
|
||||||
|
}
|
||||||
|
|
||||||
// Get game plays from repository
|
// Get game plays from repository
|
||||||
gamePlays, total, err := p.gamePlayRepo.List(
|
gamePlays, total, err := p.gamePlayRepo.List(
|
||||||
|
|||||||
Reference in New Issue
Block a user