feat: support custom server deployment drafts
This commit is contained in:
@@ -187,11 +187,22 @@ type GamePluginBridgeBody struct {
|
||||
Actions []string `json:"actions"`
|
||||
}
|
||||
|
||||
type PluginCreateFieldBody struct {
|
||||
Key string `json:"key"`
|
||||
Label string `json:"label"`
|
||||
Type string `json:"type"`
|
||||
Required bool `json:"required,omitempty"`
|
||||
DefaultValue string `json:"defaultValue,omitempty"`
|
||||
Options []string `json:"options,omitempty"`
|
||||
ConfigKey string `json:"configKey,omitempty"`
|
||||
}
|
||||
|
||||
type GamePluginManifestServerBody struct {
|
||||
Type string `json:"type"`
|
||||
DisplayName string `json:"displayName"`
|
||||
SupportedOS []string `json:"supportedOs,omitempty"`
|
||||
CreateFormSchema string `json:"createFormSchema"`
|
||||
Type string `json:"type"`
|
||||
DisplayName string `json:"displayName"`
|
||||
SupportedOS []string `json:"supportedOs,omitempty"`
|
||||
CreateFormSchema string `json:"createFormSchema"`
|
||||
CreateFields []PluginCreateFieldBody `json:"createFields,omitempty"`
|
||||
}
|
||||
|
||||
type GamePluginManifestAIBody struct {
|
||||
@@ -314,6 +325,7 @@ type GamePluginCreateRequest struct {
|
||||
SupportedOS []string `json:"supportedOs,omitempty"`
|
||||
ManifestRef string `json:"manifestRef"`
|
||||
CreateFormSchemaRef string `json:"createFormSchemaRef"`
|
||||
CreateFields []PluginCreateFieldBody `json:"createFields,omitempty"`
|
||||
RequiredRunCapabilities []string `json:"requiredRunCapabilities"`
|
||||
DeclaredPermissions []string `json:"declaredPermissions,omitempty"`
|
||||
Permissions PluginPermissionsResponse `json:"permissions"`
|
||||
@@ -339,6 +351,7 @@ type GamePluginResponse struct {
|
||||
SupportedOS []string `json:"supportedOs,omitempty"`
|
||||
ManifestRef string `json:"manifestRef"`
|
||||
CreateFormSchemaRef string `json:"createFormSchemaRef"`
|
||||
CreateFields []PluginCreateFieldBody `json:"createFields,omitempty"`
|
||||
RequiredRunCapabilities []string `json:"requiredRunCapabilities"`
|
||||
DeclaredPermissions []string `json:"declaredPermissions"`
|
||||
Permissions PluginPermissionsResponse `json:"permissions"`
|
||||
@@ -656,6 +669,7 @@ type JobCreateRequest struct {
|
||||
|
||||
type JobProgressBody struct {
|
||||
Percent int `json:"percent"`
|
||||
Phase string `json:"phase,omitempty"`
|
||||
Message string `json:"message,omitempty"`
|
||||
}
|
||||
|
||||
@@ -929,12 +943,35 @@ func (bridge GamePluginBridgeBody) ToDomain() domain.GamePluginBridge {
|
||||
return domain.GamePluginBridge{Actions: domain.CopyStringSlice(bridge.Actions)}
|
||||
}
|
||||
|
||||
func pluginCreateFieldsToDomain(fields []PluginCreateFieldBody) []domain.PluginCreateField {
|
||||
if fields == nil {
|
||||
return nil
|
||||
}
|
||||
out := make([]domain.PluginCreateField, len(fields))
|
||||
for i, field := range fields {
|
||||
out[i] = domain.PluginCreateField{Key: field.Key, Label: field.Label, Type: field.Type, Required: field.Required, DefaultValue: field.DefaultValue, Options: domain.CopyStringSlice(field.Options), ConfigKey: field.ConfigKey}
|
||||
}
|
||||
return out
|
||||
}
|
||||
|
||||
func pluginCreateFieldsFromDomain(fields []domain.PluginCreateField) []PluginCreateFieldBody {
|
||||
if fields == nil {
|
||||
return nil
|
||||
}
|
||||
out := make([]PluginCreateFieldBody, len(fields))
|
||||
for i, field := range fields {
|
||||
out[i] = PluginCreateFieldBody{Key: field.Key, Label: field.Label, Type: field.Type, Required: field.Required, DefaultValue: field.DefaultValue, Options: domain.CopyStringSlice(field.Options), ConfigKey: field.ConfigKey}
|
||||
}
|
||||
return out
|
||||
}
|
||||
|
||||
func (server GamePluginManifestServerBody) ToDomain() domain.GamePluginManifestServer {
|
||||
return domain.GamePluginManifestServer{
|
||||
Type: server.Type,
|
||||
DisplayName: server.DisplayName,
|
||||
SupportedOS: domain.CopyStringSlice(server.SupportedOS),
|
||||
CreateFormSchema: server.CreateFormSchema,
|
||||
CreateFields: pluginCreateFieldsToDomain(server.CreateFields),
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1001,6 +1038,7 @@ func (request GamePluginCreateRequest) ToDomain() domain.GamePlugin {
|
||||
SupportedOS: domain.CopyStringSlice(request.SupportedOS),
|
||||
ManifestRef: request.ManifestRef,
|
||||
CreateFormSchemaRef: request.CreateFormSchemaRef,
|
||||
CreateFields: pluginCreateFieldsToDomain(request.CreateFields),
|
||||
RequiredRunCapabilities: domain.CopyStringSlice(request.RequiredRunCapabilities),
|
||||
DeclaredPermissions: domain.CopyStringSlice(request.DeclaredPermissions),
|
||||
Permissions: permissionsToDomain(request.Permissions),
|
||||
@@ -1247,6 +1285,7 @@ func GamePluginFromDomain(plugin domain.GamePlugin) GamePluginResponse {
|
||||
SupportedOS: plugin.SupportedOS,
|
||||
ManifestRef: plugin.ManifestRef,
|
||||
CreateFormSchemaRef: plugin.CreateFormSchemaRef,
|
||||
CreateFields: pluginCreateFieldsFromDomain(plugin.CreateFields),
|
||||
RequiredRunCapabilities: plugin.RequiredRunCapabilities,
|
||||
DeclaredPermissions: plugin.DeclaredPermissions,
|
||||
Permissions: permissionsFromDomain(plugin.Permissions),
|
||||
@@ -1785,6 +1824,7 @@ func capacityToDomain(capacity RunCapacityResponse) domain.RunCapacity {
|
||||
func progressFromDomain(progress domain.JobProgress) JobProgressBody {
|
||||
return JobProgressBody{
|
||||
Percent: progress.Percent,
|
||||
Phase: progress.Phase,
|
||||
Message: progress.Message,
|
||||
}
|
||||
}
|
||||
@@ -1792,6 +1832,7 @@ func progressFromDomain(progress domain.JobProgress) JobProgressBody {
|
||||
func progressToDomain(progress JobProgressBody) domain.JobProgress {
|
||||
return domain.JobProgress{
|
||||
Percent: progress.Percent,
|
||||
Phase: progress.Phase,
|
||||
Message: progress.Message,
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user