moira
1package reply2
3import (4"encoding/json"5"fmt"6
7"github.com/garyburd/redigo/redis"8
9"go.avito.ru/DO/moira"10"go.avito.ru/DO/moira/database"11)
12
13// Check converts redis DB reply to *moira.CheckData
14func Check(rep interface{}, err error) (*moira.CheckData, error) {15checkData := &moira.CheckData{}16bytes, err := redis.Bytes(rep, err)17
18if err != nil {19if err == redis.ErrNil {20return nil, database.ErrNil21}22return nil, fmt.Errorf("Failed to read lastCheck: %s", err.Error())23}24
25err = json.Unmarshal(bytes, checkData)26if err != nil {27return nil, fmt.Errorf("Failed to parse lastCheck json %s: %s", string(bytes), err.Error())28}29
30return checkData, nil31}
32