feat(plugin): gate pages on companion features
This commit is contained in:
@@ -194,21 +194,30 @@ type GameClientBridgeAuditReferenceListResponse struct {
|
||||
}
|
||||
|
||||
type GameClientBridgeProfileDeclarationResponse struct {
|
||||
PluginID string `json:"pluginId"`
|
||||
ProfileKey string `json:"profileKey"`
|
||||
Available bool `json:"available"`
|
||||
Reason string `json:"reason,omitempty"`
|
||||
CommandTypes []string `json:"commandTypes"`
|
||||
SnapshotTypes []string `json:"snapshotTypes"`
|
||||
QueryTemplateKeys []string `json:"queryTemplateKeys"`
|
||||
PluginID string `json:"pluginId"`
|
||||
ProfileKey string `json:"profileKey"`
|
||||
Available bool `json:"available"`
|
||||
Reason string `json:"reason,omitempty"`
|
||||
CommandTypes []string `json:"commandTypes"`
|
||||
SnapshotTypes []string `json:"snapshotTypes"`
|
||||
QueryTemplateKeys []string `json:"queryTemplateKeys"`
|
||||
HandlerTypes []string `json:"handlerTypes"`
|
||||
EventProducerTypes []string `json:"eventProducerTypes"`
|
||||
}
|
||||
|
||||
type GameClientBridgeFeatureAvailabilityResponse struct {
|
||||
Key string `json:"key"`
|
||||
Available bool `json:"available"`
|
||||
Reason string `json:"reason,omitempty"`
|
||||
}
|
||||
|
||||
type GameClientBridgeStatusResponse struct {
|
||||
ServerInstanceID string `json:"serverInstanceId"`
|
||||
PluginID string `json:"pluginId"`
|
||||
Available bool `json:"available"`
|
||||
Reason string `json:"reason,omitempty"`
|
||||
Profiles []GameClientBridgeProfileDeclarationResponse `json:"profiles"`
|
||||
ServerInstanceID string `json:"serverInstanceId"`
|
||||
PluginID string `json:"pluginId"`
|
||||
Available bool `json:"available"`
|
||||
Reason string `json:"reason,omitempty"`
|
||||
Profiles []GameClientBridgeProfileDeclarationResponse `json:"profiles"`
|
||||
Features []GameClientBridgeFeatureAvailabilityResponse `json:"features"`
|
||||
}
|
||||
|
||||
func (request GameClientBridgeQueueRequest) ToDomain(serverID, pluginID string) domain.GameClientBridgeQueueRequest {
|
||||
@@ -356,9 +365,13 @@ func GameClientBridgeStatusFromDomain(value domain.GameClientBridgeStatus) GameC
|
||||
value = domain.CopyGameClientBridgeStatus(value)
|
||||
profiles := make([]GameClientBridgeProfileDeclarationResponse, len(value.Profiles))
|
||||
for index, profile := range value.Profiles {
|
||||
profiles[index] = GameClientBridgeProfileDeclarationResponse{PluginID: profile.PluginID, ProfileKey: profile.ProfileKey, Available: profile.Available, Reason: profile.Reason, CommandTypes: nonNilStrings(profile.CommandTypes), SnapshotTypes: nonNilStrings(profile.SnapshotTypes), QueryTemplateKeys: nonNilStrings(profile.QueryTemplateKeys)}
|
||||
profiles[index] = GameClientBridgeProfileDeclarationResponse{PluginID: profile.PluginID, ProfileKey: profile.ProfileKey, Available: profile.Available, Reason: profile.Reason, CommandTypes: nonNilStrings(profile.CommandTypes), SnapshotTypes: nonNilStrings(profile.SnapshotTypes), QueryTemplateKeys: nonNilStrings(profile.QueryTemplateKeys), HandlerTypes: nonNilStrings(profile.HandlerTypes), EventProducerTypes: nonNilStrings(profile.EventProducerTypes)}
|
||||
}
|
||||
return GameClientBridgeStatusResponse{ServerInstanceID: value.ServerInstanceID, PluginID: value.PluginID, Available: value.Available, Reason: value.Reason, Profiles: profiles}
|
||||
features := make([]GameClientBridgeFeatureAvailabilityResponse, len(value.Features))
|
||||
for index, feature := range value.Features {
|
||||
features[index] = GameClientBridgeFeatureAvailabilityResponse{Key: feature.Key, Available: feature.Available, Reason: feature.Reason}
|
||||
}
|
||||
return GameClientBridgeStatusResponse{ServerInstanceID: value.ServerInstanceID, PluginID: value.PluginID, Available: value.Available, Reason: value.Reason, Profiles: profiles, Features: features}
|
||||
}
|
||||
|
||||
func gameClientBridgeCommandResultFromDomain(value domain.GameClientBridgeResult) GameClientBridgeCommandResultResponse {
|
||||
|
||||
Reference in New Issue
Block a user