42 lines
1001 B
Go
42 lines
1001 B
Go
package data
|
|
|
|
import (
|
|
"encoding/json"
|
|
|
|
resources "cloud.o-forge.io/core/oc-lib/models/resources"
|
|
"cloud.o-forge.io/core/oc-lib/models/utils"
|
|
tool "cloud.o-forge.io/core/oc-lib/utils"
|
|
)
|
|
|
|
type Data struct {
|
|
resources.AbstractResource
|
|
Protocols []string `json:"protocol,omitempty" bson:"protocol,omitempty"` //TODO Enum type
|
|
DataType string `json:"datatype" required:"true" bson:"datatype"`
|
|
Example string `json:"example" bson:"example" required:"true" validate:"required" description:"base64 encoded data"`
|
|
}
|
|
|
|
func (dma *Data) Deserialize(j map[string]interface{}) utils.DBObject {
|
|
b, err := json.Marshal(j)
|
|
if err != nil {
|
|
return nil
|
|
}
|
|
json.Unmarshal(b, dma)
|
|
return dma
|
|
}
|
|
|
|
func (d *Data) GetType() resources.ResourceType {
|
|
return resources.DATA
|
|
}
|
|
|
|
func (d *Data) GetAccessor(driver tool.Driver) utils.Accessor {
|
|
var data utils.Accessor
|
|
switch driver {
|
|
case tool.MONGO:
|
|
data = &DataMongoAccessor{}
|
|
default:
|
|
data = &DataMongoAccessor{}
|
|
}
|
|
data.SetLogger()
|
|
return data
|
|
}
|