moira
1package reply2
3import (4"encoding/json"5
6"github.com/garyburd/redigo/redis"7"github.com/pkg/errors"8
9"go.avito.ru/DO/moira"10"go.avito.ru/DO/moira/database"11)
12
13// Maintenance converts redis DB reply to moira.Maintenance
14func Maintenance(reply interface{}, err error) (moira.Maintenance, error) {15maintenance := moira.NewMaintenance()16bytes, err := redis.Bytes(reply, err)17
18if err != nil {19if err == redis.ErrNil {20return maintenance, database.ErrNil21}22return nil, errors.Wrap(err, "failed to convert response to bytes")23}24
25err = json.Unmarshal(bytes, &maintenance)26if err != nil {27err = errors.Wrap(err, "failed to unmarshal response")28}29
30return maintenance, nil31}
32