Move SCUM lifecycle ownership to plugin
This commit is contained in:
@@ -371,6 +371,7 @@ type GamePluginManifestBody struct {
|
||||
Capabilities []string `json:"capabilities"`
|
||||
Permissions []string `json:"permissions"`
|
||||
Actions PluginLifecycleActionsBody `json:"actions"`
|
||||
AssetFiles []PluginAssetFileBody `json:"assetFiles,omitempty"`
|
||||
Pages []GamePluginPageBody `json:"pages,omitempty"`
|
||||
FileWorkspace PluginFileWorkspaceBody `json:"fileWorkspace,omitempty"`
|
||||
AI GamePluginManifestAIBody `json:"ai,omitempty"`
|
||||
@@ -384,6 +385,13 @@ type GamePluginManifestBody struct {
|
||||
type GamePluginManifestRegistrationRequest struct {
|
||||
ManifestRef string `json:"manifestRef"`
|
||||
Manifest GamePluginManifestBody `json:"manifest"`
|
||||
AssetFiles []PluginAssetFileBody `json:"assetFiles,omitempty"`
|
||||
}
|
||||
|
||||
type PluginAssetFileBody struct {
|
||||
Path string `json:"path"`
|
||||
Content string `json:"content,omitempty"`
|
||||
Mode int `json:"mode,omitempty"`
|
||||
}
|
||||
|
||||
type GamePluginCreateRequest struct {
|
||||
@@ -996,6 +1004,7 @@ func (request AIProviderUpdateRequest) ToDomain(id string, status domain.AIProvi
|
||||
func (request GamePluginManifestRegistrationRequest) ToDomain() domain.GamePluginManifestRegistration {
|
||||
return domain.GamePluginManifestRegistration{
|
||||
ManifestRef: request.ManifestRef,
|
||||
AssetFiles: pluginAssetFilesToDomain(request.AssetFiles),
|
||||
Manifest: domain.GamePluginManifest{
|
||||
ID: request.Manifest.ID,
|
||||
Name: request.Manifest.Name,
|
||||
@@ -1008,6 +1017,7 @@ func (request GamePluginManifestRegistrationRequest) ToDomain() domain.GamePlugi
|
||||
Capabilities: domain.CopyStringSlice(request.Manifest.Capabilities),
|
||||
Permissions: domain.CopyStringSlice(request.Manifest.Permissions),
|
||||
Actions: request.Manifest.Actions.ToDomain(),
|
||||
AssetFiles: pluginAssetFilesToDomain(request.Manifest.AssetFiles),
|
||||
Pages: pagesToDomain(request.Manifest.Pages),
|
||||
FileWorkspace: fileWorkspaceToDomain(request.Manifest.FileWorkspace),
|
||||
AI: request.Manifest.AI.ToDomain(),
|
||||
@@ -1020,6 +1030,17 @@ func (request GamePluginManifestRegistrationRequest) ToDomain() domain.GamePlugi
|
||||
}
|
||||
}
|
||||
|
||||
func pluginAssetFilesToDomain(files []PluginAssetFileBody) []domain.PluginAssetFile {
|
||||
if files == nil {
|
||||
return nil
|
||||
}
|
||||
out := make([]domain.PluginAssetFile, len(files))
|
||||
for i, file := range files {
|
||||
out[i] = domain.PluginAssetFile{Path: file.Path, Content: file.Content, Mode: file.Mode}
|
||||
}
|
||||
return out
|
||||
}
|
||||
|
||||
func mapTrajectoryDeclarationToDomain(value *GameMapTrajectoryDeclarationBody) *domain.GameMapTrajectoryDeclaration {
|
||||
if value == nil {
|
||||
return nil
|
||||
|
||||
Reference in New Issue
Block a user