2023-06-29 18:14:52 +00:00
|
|
|
package state
|
|
|
|
|
|
|
|
import (
|
|
|
|
"net/url"
|
|
|
|
|
2023-09-12 16:43:34 +00:00
|
|
|
commonv1 "code.icb4dc0.de/buildr/api/generated/common/v1"
|
2023-08-23 18:14:02 +00:00
|
|
|
|
2023-08-15 19:47:19 +00:00
|
|
|
"code.icb4dc0.de/buildr/buildr/modules/state/ent"
|
|
|
|
|
2023-06-29 18:14:52 +00:00
|
|
|
"github.com/google/uuid"
|
|
|
|
)
|
|
|
|
|
|
|
|
type Plugin struct {
|
|
|
|
ID *uuid.UUID
|
|
|
|
Name string
|
|
|
|
URL *url.URL
|
|
|
|
LocalPath string
|
|
|
|
Hash []byte
|
|
|
|
}
|
|
|
|
|
|
|
|
type PluginModule struct {
|
2023-08-23 18:14:02 +00:00
|
|
|
ID *uuid.UUID
|
|
|
|
Type string
|
|
|
|
DefaultSpec []byte
|
2023-09-12 16:43:34 +00:00
|
|
|
Category commonv1.Category
|
2023-08-23 18:14:02 +00:00
|
|
|
PluginID uuid.UUID
|
2023-06-29 18:14:52 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
func pluginFromEntity(p *ent.Plugin) (Plugin, error) {
|
|
|
|
u, err := url.Parse(p.URL)
|
|
|
|
if err != nil {
|
|
|
|
return Plugin{}, err
|
|
|
|
}
|
|
|
|
|
|
|
|
return Plugin{
|
|
|
|
ID: &p.ID,
|
|
|
|
Name: p.Name,
|
|
|
|
URL: u,
|
|
|
|
LocalPath: p.LocalPath,
|
|
|
|
Hash: p.Hash,
|
|
|
|
}, nil
|
|
|
|
}
|