feat: game lobby service
This commit is contained in:
@@ -104,8 +104,13 @@ type AccountView struct {
|
||||
// Email stores the exact normalized login e-mail address.
|
||||
Email string `json:"email"`
|
||||
|
||||
// RaceName stores the current user-facing race name.
|
||||
RaceName string `json:"race_name"`
|
||||
// UserName stores the immutable `player-<suffix>` handle assigned at
|
||||
// account creation.
|
||||
UserName string `json:"user_name"`
|
||||
|
||||
// DisplayName stores the current optional free-text user label. An empty
|
||||
// value indicates no display name is set.
|
||||
DisplayName string `json:"display_name,omitempty"`
|
||||
|
||||
// PreferredLanguage stores the current BCP 47 preferred language.
|
||||
PreferredLanguage string `json:"preferred_language"`
|
||||
@@ -177,7 +182,8 @@ func (aggregate Aggregate) View() AccountView {
|
||||
view := AccountView{
|
||||
UserID: aggregate.AccountRecord.UserID.String(),
|
||||
Email: aggregate.AccountRecord.Email.String(),
|
||||
RaceName: aggregate.AccountRecord.RaceName.String(),
|
||||
UserName: aggregate.AccountRecord.UserName.String(),
|
||||
DisplayName: aggregate.AccountRecord.DisplayName.String(),
|
||||
PreferredLanguage: aggregate.AccountRecord.PreferredLanguage.String(),
|
||||
TimeZone: aggregate.AccountRecord.TimeZone.String(),
|
||||
Entitlement: EntitlementSnapshotView{
|
||||
@@ -280,6 +286,9 @@ func (loader *Loader) Load(ctx context.Context, userID common.UserID) (Aggregate
|
||||
default:
|
||||
return Aggregate{}, shared.ServiceUnavailable(err)
|
||||
}
|
||||
if accountRecord.IsDeleted() {
|
||||
return Aggregate{}, shared.SubjectNotFound()
|
||||
}
|
||||
|
||||
entitlementSnapshot, err := loader.entitlements.GetByUserID(ctx, userID)
|
||||
switch {
|
||||
|
||||
Reference in New Issue
Block a user