t38c icon indicating copy to clipboard operation
t38c copied to clipboard

TTL errors when trying to unmarshal because tile38 returns a float not an int

Open lugomateo opened this issue 3 years ago • 0 comments

After setting an object's expiration, calling TTL on the object causes an error: json: cannot unmarshal number 0.174668 into Go struct field .ttl of type int

Calling TTL directly on the tile38-cli, looks like tile38 returns a float (instead of an int) {"ok":true,"ttl":0.174668,"elapsed":"7.359µs"}

should be a super quick fix, something like this:

func (ks *Keys) TTL(key, objectID string) (float64, error) {
	var resp struct {
		TTL float64 `json:"ttl"`
	}

	err := ks.client.jExecute(&resp, "TTL", key, objectID)
	if err != nil {
		return -1, err
	}

	return resp.TTL, nil
}

lugomateo avatar Jan 16 '23 17:01 lugomateo