- if data != nil && data[key] != nil {
- err = proto.Unmarshal([]byte(data[key].(string)), entity)
- if err != nil {
- return common.NewInternalError(err)
+ return e2tInstance, err
+}
+
+func (w *rNibReaderInstance) GetE2TInstances(addresses []string) ([]*entities.E2TInstance, error) {
+ var data map[string]interface{}
+ var err error
+
+ keys := common.MapE2TAddressesToKeys(addresses)
+
+ e2tInstances := []*entities.E2TInstance{}
+
+ if w.sdlStorage != nil {
+ data, err = w.sdlStorage.Get(w.ns, keys)
+ } else {
+ data, err = w.sdl.Get(keys)
+ }
+
+ if err != nil {
+ return []*entities.E2TInstance{}, common.NewInternalError(err)
+ }
+
+ if len(data) == 0 {
+ return []*entities.E2TInstance{}, common.NewResourceNotFoundErrorf("#rNibReader.GetE2TInstances - e2t instances not found")
+ }
+
+ for _, v := range keys {
+
+ if data[v] != nil {
+ var e2tInstance entities.E2TInstance
+ err = json.Unmarshal([]byte(data[v].(string)), &e2tInstance)
+ if err != nil {
+ continue
+ }
+
+ e2tInstances = append(e2tInstances, &e2tInstance)