utils to transform byte to resource
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
package resources
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"slices"
|
||||
|
||||
@@ -382,3 +383,42 @@ func (rp *ResourcePartnerShip[T]) GetPeerGroups() map[string][]string {
|
||||
func (rp *ResourcePartnerShip[T]) ClearPeerGroups() {
|
||||
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")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user