(query *protocol.KontrolQuery)
| 125 | } |
| 126 | |
| 127 | func (p *Postgres) Get(query *protocol.KontrolQuery) (Kites, error) { |
| 128 | // only let query with usernames, otherwise the whole tree will be fetched |
| 129 | // which is not good for us |
| 130 | sqlQuery, args, err := selectQuery(query) |
| 131 | if err != nil { |
| 132 | return nil, err |
| 133 | } |
| 134 | |
| 135 | var hasVersionConstraint bool // does query contains a constraint on version? |
| 136 | var keyRest string // query key after the version field |
| 137 | var versionConstraint version.Constraints |
| 138 | // NewVersion returns an error if it's a constraint, like: ">= 1.0, < 1.4" |
| 139 | _, err = version.NewVersion(query.Version) |
| 140 | if err != nil && query.Version != "" { |
| 141 | // now parse our constraint |
| 142 | versionConstraint, err = version.NewConstraint(query.Version) |
| 143 | if err != nil { |
| 144 | // version is a malformed, just return the error |
| 145 | return nil, err |
| 146 | } |
| 147 | |
| 148 | hasVersionConstraint = true |
| 149 | nameQuery := &protocol.KontrolQuery{ |
| 150 | Username: query.Username, |
| 151 | Environment: query.Environment, |
| 152 | Name: query.Name, |
| 153 | } |
| 154 | |
| 155 | // We will make a get request to all nodes under this name |
| 156 | // and filter the result later. |
| 157 | sqlQuery, args, err = selectQuery(nameQuery) |
| 158 | if err != nil { |
| 159 | return nil, err |
| 160 | } |
| 161 | |
| 162 | // Rest of the key after version field |
| 163 | keyRest = "/" + strings.TrimRight( |
| 164 | query.Region+"/"+query.Hostname+"/"+query.ID, "/") |
| 165 | } |
| 166 | |
| 167 | rows, err := p.DB.Query(sqlQuery, args...) |
| 168 | if err != nil { |
| 169 | return nil, err |
| 170 | } |
| 171 | defer rows.Close() |
| 172 | |
| 173 | var ( |
| 174 | username string |
| 175 | environment string |
| 176 | kitename string |
| 177 | version string |
| 178 | region string |
| 179 | hostname string |
| 180 | id string |
| 181 | url string |
| 182 | updated_at time.Time |
| 183 | created_at time.Time |
| 184 | keyId string |
nothing calls this directly
no test coverage detected