utils to transform byte to resource

This commit is contained in:
mr
2026-01-28 17:04:40 +01:00
parent 7ccd7fe16b
commit c0d89ea9e1

View File

@@ -1,6 +1,7 @@
package resources package resources
import ( import (
"encoding/json"
"errors" "errors"
"slices" "slices"
@@ -382,3 +383,42 @@ func (rp *ResourcePartnerShip[T]) GetPeerGroups() map[string][]string {
func (rp *ResourcePartnerShip[T]) ClearPeerGroups() { func (rp *ResourcePartnerShip[T]) ClearPeerGroups() {
rp.PeerGroups = map[string][]string{} rp.PeerGroups = map[string][]string{}
} }
func ToResource(
dt int,
payload []byte,
) (ResourceInterface, error) {
switch dt {
case tools.PROCESSING_RESOURCE.EnumIndex():
var data ProcessingResource
if err := json.Unmarshal(payload, &data); err != nil {
return nil, err
}
return &data, nil
case tools.WORKFLOW_RESOURCE.EnumIndex():
var data WorkflowResource
if err := json.Unmarshal(payload, &data); err != nil {
return nil, err
}
return &data, nil
case tools.DATA_RESOURCE.EnumIndex():
var data DataResource
if err := json.Unmarshal(payload, &data); err != nil {
return nil, err
}
return &data, nil
case tools.STORAGE_RESOURCE.EnumIndex():
var data StorageResource
if err := json.Unmarshal(payload, &data); err != nil {
return nil, err
}
return &data, nil
case tools.COMPUTE_RESOURCE.EnumIndex():
var data ComputeResource
if err := json.Unmarshal(payload, &data); err != nil {
return nil, err
}
return &data, nil
}
return nil, errors.New("can't found any data resources matching")
}