7
"github.com/garyburd/redigo/redis"
10
"go.avito.ru/DO/moira/database"
13
// Contact converts redis DB reply to moira.ContactData object
14
func Contact(rep interface{}, err error) (moira.ContactData, error) {
15
contact := moira.ContactData{}
16
bytes, err := redis.Bytes(rep, err)
18
if err == redis.ErrNil {
19
return contact, database.ErrNil
21
return contact, fmt.Errorf("Failed to read contact: %s", err.Error())
23
err = json.Unmarshal(bytes, &contact)
25
return contact, fmt.Errorf("Failed to parse contact json %s: %s", string(bytes), err.Error())
30
// Contacts converts redis DB reply to moira.ContactData objects array
31
func Contacts(rep interface{}, err error) ([]*moira.ContactData, error) {
32
values, err := redis.Values(rep, err)
34
if err == redis.ErrNil {
35
return make([]*moira.ContactData, 0), nil
37
return nil, fmt.Errorf("Failed to read contacts: %s", err.Error())
39
contacts := make([]*moira.ContactData, len(values))
40
for i, value := range values {
41
contact, err2 := Contact(value, err)
42
if err2 != nil && err2 != database.ErrNil {
44
} else if err2 == database.ErrNil {
47
contacts[i] = &contact