Skip to content

Commit e34f0b9

Browse files
committed
Added new saved query endpoints
1 parent 48786ff commit e34f0b9

14 files changed

+359
-83
lines changed

.golangci.yml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
linters:
2+
enable-all: true
3+
disable:
4+
- bodyclose
5+
- gochecknoglobals
6+
- goconst
7+
8+
issues:
9+
exclude-rules:
10+
- text: G201
11+
linters: gosec

.gometalinter.json

Lines changed: 0 additions & 26 deletions
This file was deleted.

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ fmtcheck:
88
@gofmt -l -s ./$(PKG_NAME)
99

1010
lint:
11-
@gometalinter ./$(PKG_NAME)
11+
@golangci-lint run ./$(PKG_NAME)
1212

1313
test: fmtcheck
1414
@go test ./$(PKG_NAME) -timeout=30s -parallel=4 -cover

dwapi/api.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ func (c *Client) encodeBody(body interface{}) (io.Reader, error) {
109109
return b, nil
110110
}
111111

112-
func (c *Client) rawRequest(headers *headers, body io.Reader) (io.Reader, error) {
112+
func (c *Client) rawRequest(headers *headers, body io.Reader) (io.ReadCloser, error) {
113113
url := c.BaseURL + headers.Endpoint
114114

115115
r, err := http.NewRequest(headers.Method, url, body)
@@ -139,7 +139,6 @@ func (c *Client) rawRequest(headers *headers, body io.Reader) (io.Reader, error)
139139
if response.StatusCode != http.StatusOK {
140140
return nil, errors.New(response.Status)
141141
}
142-
143142
return response.Body, nil
144143
}
145144

@@ -154,7 +153,9 @@ func (c *Client) request(headers *headers, body, response interface{}) (err erro
154153
return
155154
}
156155

157-
return c.unmarshal(r, response)
156+
err = c.unmarshal(r, response)
157+
r.Close()
158+
return
158159
}
159160

160161
func (c *Client) requestMultiplePages(endpoint string, response interface{}) error {

dwapi/datasets.go

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -26,15 +26,17 @@ type DatasetService struct {
2626
client *Client
2727
}
2828

29-
func (s *DatasetService) AddFilesFromURLs(owner, datasetid string, body *FileCreateRequest) (response SuccessResponse, err error) {
29+
func (s *DatasetService) AddFilesFromURLs(owner, datasetid string, body *FileCreateRequest) (
30+
response SuccessResponse, err error) {
3031
return s.client.File.AddFilesFromURLs(owner, datasetid, body)
3132
}
3233

3334
func (s *DatasetService) AssociateDOI(owner, datasetid, doi string) (response SuccessResponse, err error) {
3435
return s.client.DOI.Associate(owner, datasetid, doi)
3536
}
3637

37-
func (s *DatasetService) AssociateDOIWithVersion(owner, datasetid, versionid, doi string) (response SuccessResponse, err error) {
38+
func (s *DatasetService) AssociateDOIWithVersion(owner, datasetid, versionid, doi string) (
39+
response SuccessResponse, err error) {
3840
return s.client.DOI.AssociateWithVersion(owner, datasetid, versionid, doi)
3941
}
4042

@@ -49,7 +51,8 @@ func (s *DatasetService) Create(owner string, body *DatasetCreateRequest) (respo
4951
return
5052
}
5153

52-
func (s *DatasetService) CreateOrReplace(owner, id string, body *DatasetReplaceRequest) (response SuccessResponse, err error) {
54+
func (s *DatasetService) CreateOrReplace(owner, id string, body *DatasetReplaceRequest) (
55+
response SuccessResponse, err error) {
5356
endpoint := fmt.Sprintf("/datasets/%s/%s", owner, id)
5457
headers := s.client.buildHeaders(PUT, endpoint)
5558
err = s.client.request(headers, body, &response)
@@ -67,15 +70,17 @@ func (s *DatasetService) DeleteDOI(owner, datasetid, doi string) (response Succe
6770
return s.client.DOI.Delete(owner, datasetid, doi)
6871
}
6972

70-
func (s *DatasetService) DeleteDOIAssociatedWithVersion(owner, datasetid, versionid, doi string) (response SuccessResponse, err error) {
73+
func (s *DatasetService) DeleteDOIAssociatedWithVersion(owner, datasetid, versionid, doi string) (
74+
response SuccessResponse, err error) {
7175
return s.client.DOI.DeleteAssociatedWithVersion(owner, datasetid, versionid, doi)
7276
}
7377

7478
func (s *DatasetService) DownloadFile(owner, datasetid, filename string) (response io.Reader, err error) {
7579
return s.client.File.Download(owner, datasetid, filename)
7680
}
7781

78-
func (s *DatasetService) DownloadAndSaveFile(owner, datasetid, filename, path string) (response SuccessResponse, err error) {
82+
func (s *DatasetService) DownloadAndSaveFile(owner, datasetid, filename, path string) (
83+
response SuccessResponse, err error) {
7984
return s.client.File.DownloadAndSave(owner, datasetid, filename, path)
8085
}
8186

@@ -106,7 +111,8 @@ func (s *DatasetService) Retrieve(owner, datasetid string) (response DatasetSumm
106111
return
107112
}
108113

109-
func (s *DatasetService) RetrieveVersion(owner, datasetid, versionid string) (response DatasetSummaryResponse, err error) {
114+
func (s *DatasetService) RetrieveVersion(owner, datasetid, versionid string) (
115+
response DatasetSummaryResponse, err error) {
110116
endpoint := fmt.Sprintf("/datasets/%s/%s/v/%s", owner, datasetid, versionid)
111117
headers := s.client.buildHeaders(GET, endpoint)
112118
err = s.client.request(headers, nil, &response)
@@ -124,6 +130,7 @@ func (s *DatasetService) Update(owner, id string, body *DatasetUpdateRequest) (r
124130
return
125131
}
126132

127-
func (s *DatasetService) UploadFile(owner, id, filename, path string, expandArchive bool) (response SuccessResponse, err error) {
133+
func (s *DatasetService) UploadFile(owner, id, filename, path string, expandArchive bool) (
134+
response SuccessResponse, err error) {
128135
return s.client.File.Upload(owner, id, filename, path, expandArchive)
129136
}

dwapi/dois.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,8 @@ func (s *DoiService) Associate(owner, datasetid, doi string) (response SuccessRe
3232
return
3333
}
3434

35-
func (s *DoiService) AssociateWithVersion(owner, datasetid, versionid, doi string) (response SuccessResponse, err error) {
35+
func (s *DoiService) AssociateWithVersion(owner, datasetid, versionid, doi string) (
36+
response SuccessResponse, err error) {
3637
endpoint := fmt.Sprintf("/datasets/%s/%s/v/%s/dois/%s", owner, datasetid, versionid, doi)
3738
headers := s.client.buildHeaders(PUT, endpoint)
3839
err = s.client.request(headers, nil, &response)
@@ -46,7 +47,8 @@ func (s *DoiService) Delete(owner, datasetid, doi string) (response SuccessRespo
4647
return
4748
}
4849

49-
func (s *DoiService) DeleteAssociatedWithVersion(owner, datasetid, versionid, doi string) (response SuccessResponse, err error) {
50+
func (s *DoiService) DeleteAssociatedWithVersion(owner, datasetid, versionid, doi string) (
51+
response SuccessResponse, err error) {
5052
endpoint := fmt.Sprintf("/datasets/%s/%s/v/%s/dois/%s", owner, datasetid, versionid, doi)
5153
headers := s.client.buildHeaders(DELETE, endpoint)
5254
err = s.client.request(headers, nil, &response)

dwapi/files.go

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,8 @@ type FileService struct {
2727
client *Client
2828
}
2929

30-
func (s *FileService) AddFilesFromURLs(owner, id string, body *FileCreateRequest) (response SuccessResponse, err error) {
30+
func (s *FileService) AddFilesFromURLs(owner, id string, body *FileCreateRequest) (
31+
response SuccessResponse, err error) {
3132
endpoint := fmt.Sprintf("/datasets/%s/%s/files", owner, id)
3233
headers := s.client.buildHeaders(POST, endpoint)
3334
err = s.client.request(headers, body, &response)
@@ -41,7 +42,7 @@ func (s *FileService) Delete(owner, id, filename string) (response SuccessRespon
4142
return
4243
}
4344

44-
func (s *FileService) Download(owner, id, filename string) (response io.Reader, err error) {
45+
func (s *FileService) Download(owner, id, filename string) (response io.ReadCloser, err error) {
4546
endpoint := fmt.Sprintf("/file_download/%s/%s/%s", owner, id, filename)
4647
headers := s.client.buildHeaders(GET, endpoint)
4748
return s.client.rawRequest(headers, nil)
@@ -62,7 +63,7 @@ func (s *FileService) DownloadAndSave(owner, id, filename, path string) (respons
6263
}, nil
6364
}
6465

65-
func (s *FileService) DownloadDataset(owner, id string) (response io.Reader, err error) {
66+
func (s *FileService) DownloadDataset(owner, id string) (response io.ReadCloser, err error) {
6667
endpoint := fmt.Sprintf("/download/%s/%s", owner, id)
6768
headers := s.client.buildHeaders(GET, endpoint)
6869
return s.client.rawRequest(headers, nil)
@@ -90,11 +91,12 @@ func (s *FileService) Sync(owner, id string) (response SuccessResponse, err erro
9091
return
9192
}
9293

93-
func (s *FileService) UploadStream(owner, id, filename string, body io.Reader, expandArchive bool) (response SuccessResponse, err error) {
94+
func (s *FileService) UploadStream(owner, id, filename string, body io.Reader, expandArchive bool) (
95+
response SuccessResponse, err error) {
9496
endpoint := fmt.Sprintf("/uploads/%s/%s/files/%s", owner, id, filename)
9597

9698
if expandArchive {
97-
endpoint = endpoint + "?expandArchive=true"
99+
endpoint += "?expandArchive=true"
98100
}
99101

100102
headers := s.client.buildHeaders(PUT, endpoint)
@@ -106,10 +108,12 @@ func (s *FileService) UploadStream(owner, id, filename string, body io.Reader, e
106108
}
107109

108110
err = s.client.unmarshal(r, &response)
111+
r.Close()
109112
return
110113
}
111114

112-
func (s *FileService) Upload(owner, id, filename, path string, expandArchive bool) (response SuccessResponse, err error) {
115+
func (s *FileService) Upload(owner, id, filename, path string, expandArchive bool) (
116+
response SuccessResponse, err error) {
113117
f, err := os.Open(path)
114118
if err != nil {
115119
return

dwapi/insights.go

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,8 @@ type InsightService struct {
2525
client *Client
2626
}
2727

28-
func (s *InsightService) Create(owner, projectid string, body *InsightCreateRequest) (response InsightCreateResponse, err error) {
28+
func (s *InsightService) Create(owner, projectid string, body *InsightCreateRequest) (
29+
response InsightCreateResponse, err error) {
2930
endpoint := fmt.Sprintf("/insights/%s/%s", owner, projectid)
3031
headers := s.client.buildHeaders(POST, endpoint)
3132
err = s.client.request(headers, body, &response)
@@ -47,7 +48,8 @@ func (s *InsightService) List(owner, projectid string) (response []InsightSummar
4748
return
4849
}
4950

50-
func (s *InsightService) Replace(owner, projectid, insightid string, body *InsightReplaceRequest) (response SuccessResponse, err error) {
51+
func (s *InsightService) Replace(owner, projectid, insightid string, body *InsightReplaceRequest) (
52+
response SuccessResponse, err error) {
5153
endpoint := fmt.Sprintf("/insights/%s/%s/%s", owner, projectid, insightid)
5254
headers := s.client.buildHeaders(PUT, endpoint)
5355
err = s.client.request(headers, body, &response)
@@ -61,14 +63,16 @@ func (s *InsightService) Retrieve(owner, projectid, insightid string) (response
6163
return
6264
}
6365

64-
func (s *InsightService) RetrieveVersion(owner, projectid, insightid, versionid string) (response InsightSummaryResponse, err error) {
66+
func (s *InsightService) RetrieveVersion(owner, projectid, insightid, versionid string) (
67+
response InsightSummaryResponse, err error) {
6568
endpoint := fmt.Sprintf("/insights/%s/%s/%s/v/%s", owner, projectid, insightid, versionid)
6669
headers := s.client.buildHeaders(GET, endpoint)
6770
err = s.client.request(headers, nil, &response)
6871
return
6972
}
7073

71-
func (s *InsightService) Update(owner, projectid, insightid string, body *InsightUpdateRequest) (response SuccessResponse, err error) {
74+
func (s *InsightService) Update(owner, projectid, insightid string, body *InsightUpdateRequest) (
75+
response SuccessResponse, err error) {
7276
endpoint := fmt.Sprintf("/insights/%s/%s/%s", owner, projectid, insightid)
7377
headers := s.client.buildHeaders(PATCH, endpoint)
7478
err = s.client.request(headers, body, &response)

dwapi/models.go

Lines changed: 32 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -238,28 +238,47 @@ type ProjectSummaryResponse struct {
238238
Visibility string `json:"visibility"`
239239
}
240240

241+
type QueryCreateRequest struct {
242+
Name string `json:"name"`
243+
Content string `json:"content"`
244+
Language string `json:"language"`
245+
Published bool `json:"published,omitempty"`
246+
}
247+
248+
type QueryParameter struct {
249+
Type string `json:"type,omitempty"`
250+
Datatype string `json:"datatype,omitempty"`
251+
}
252+
241253
type QuerySummaryResponse struct {
242-
Body string `json:"body,omitempty"`
243-
Created string `json:"created,omitempty"`
244-
ID string `json:"id,omitempty"`
245-
Language string `json:"language,omitempty"`
246-
Name string `json:"name,omitempty"`
247-
Owner string `json:"owner,omitempty"`
248-
Updated string `json:"updated,omitempty"`
249-
Version string `json:"version,omitempty"`
254+
Body string `json:"body,omitempty"`
255+
Created string `json:"created,omitempty"`
256+
ID string `json:"id,omitempty"`
257+
Language string `json:"language,omitempty"`
258+
Name string `json:"name,omitempty"`
259+
Owner string `json:"owner,omitempty"`
260+
Updated string `json:"updated,omitempty"`
261+
Version string `json:"version,omitempty"`
262+
Parameters map[string]QueryParameter `json:"parameters,omitempty"`
263+
}
264+
265+
type QueryUpdateRequest struct {
266+
Name string `json:"name"`
267+
Content string `json:"content"`
268+
Published bool `json:"published,omitempty"`
250269
}
251270

252271
type SavedQueryExecutionRequest struct {
253-
Parameters interface{} `json:"parameters,omitempty"`
254-
IncludeTableSchema bool `json:"includeTableSchema,omitempty"`
255-
MaxRows float64 `json:"maxRows,omitempty"`
272+
Parameters map[string]string `json:"parameters,omitempty"`
273+
IncludeTableSchema bool `json:"includeTableSchema,omitempty"`
274+
MaxRows float64 `json:"maxRows,omitempty"`
256275
}
257276

258-
type SparqlQueryRequest struct {
277+
type SPARQLQueryRequest struct {
259278
Query string `json:"query"`
260279
}
261280

262-
type SqlQueryRequest struct {
281+
type SQLQueryRequest struct {
263282
Query string `json:"query"`
264283
IncludeTableSchema bool `json:"includeTableSchema,omitempty"`
265284
}

0 commit comments

Comments
 (0)