issueFieldsFromNodes converts GraphQL issue field union nodes into IssueField values. Read from the fragment matching __typename; the other fragments are zero-valued.
(nodes []issueFieldNode)
| 200 | // issueFieldsFromNodes converts GraphQL issue field union nodes into IssueField values. |
| 201 | // Read from the fragment matching __typename; the other fragments are zero-valued. |
| 202 | func issueFieldsFromNodes(nodes []issueFieldNode) []IssueField { |
| 203 | fields := make([]IssueField, 0, len(nodes)) |
| 204 | for _, node := range nodes { |
| 205 | var f IssueField |
| 206 | switch string(node.TypeName) { |
| 207 | case "IssueFieldSingleSelect": |
| 208 | opts := make([]IssueSingleSelectFieldOption, 0, len(node.IssueFieldSingleSelect.Options)) |
| 209 | for _, o := range node.IssueFieldSingleSelect.Options { |
| 210 | opts = append(opts, IssueSingleSelectFieldOption{ |
| 211 | ID: fmt.Sprintf("%v", o.ID), |
| 212 | Name: string(o.Name), |
| 213 | Description: string(o.Description), |
| 214 | Color: string(o.Color), |
| 215 | Priority: o.Priority, |
| 216 | }) |
| 217 | } |
| 218 | f = IssueField{ |
| 219 | ID: fmt.Sprintf("%v", node.IssueFieldSingleSelect.ID), |
| 220 | DatabaseID: parseFullDatabaseID(string(node.IssueFieldSingleSelect.FullDatabaseID)), |
| 221 | Name: string(node.IssueFieldSingleSelect.Name), |
| 222 | Description: string(node.IssueFieldSingleSelect.Description), |
| 223 | DataType: string(node.IssueFieldSingleSelect.DataType), |
| 224 | Visibility: string(node.IssueFieldSingleSelect.Visibility), |
| 225 | Options: opts, |
| 226 | } |
| 227 | case "IssueFieldText": |
| 228 | f = IssueField{ |
| 229 | ID: fmt.Sprintf("%v", node.IssueFieldText.ID), |
| 230 | DatabaseID: parseFullDatabaseID(string(node.IssueFieldText.FullDatabaseID)), |
| 231 | Name: string(node.IssueFieldText.Name), |
| 232 | Description: string(node.IssueFieldText.Description), |
| 233 | DataType: string(node.IssueFieldText.DataType), |
| 234 | Visibility: string(node.IssueFieldText.Visibility), |
| 235 | } |
| 236 | case "IssueFieldNumber": |
| 237 | f = IssueField{ |
| 238 | ID: fmt.Sprintf("%v", node.IssueFieldNumber.ID), |
| 239 | DatabaseID: parseFullDatabaseID(string(node.IssueFieldNumber.FullDatabaseID)), |
| 240 | Name: string(node.IssueFieldNumber.Name), |
| 241 | Description: string(node.IssueFieldNumber.Description), |
| 242 | DataType: string(node.IssueFieldNumber.DataType), |
| 243 | Visibility: string(node.IssueFieldNumber.Visibility), |
| 244 | } |
| 245 | case "IssueFieldDate": |
| 246 | f = IssueField{ |
| 247 | ID: fmt.Sprintf("%v", node.IssueFieldDate.ID), |
| 248 | DatabaseID: parseFullDatabaseID(string(node.IssueFieldDate.FullDatabaseID)), |
| 249 | Name: string(node.IssueFieldDate.Name), |
| 250 | Description: string(node.IssueFieldDate.Description), |
| 251 | DataType: string(node.IssueFieldDate.DataType), |
| 252 | Visibility: string(node.IssueFieldDate.Visibility), |
| 253 | } |
| 254 | default: |
| 255 | continue |
| 256 | } |
| 257 | fields = append(fields, f) |
| 258 | } |
| 259 | return fields |
no test coverage detected