Skip to content

Commit

Permalink
Added new saved query endpoints
Browse files Browse the repository at this point in the history
  • Loading branch information
laconc committed Jul 9, 2019
1 parent 48786ff commit e34f0b9
Show file tree
Hide file tree
Showing 14 changed files with 359 additions and 83 deletions.
11 changes: 11 additions & 0 deletions .golangci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
linters:
enable-all: true
disable:
- bodyclose
- gochecknoglobals
- goconst

issues:
exclude-rules:
- text: G201
linters: gosec
26 changes: 0 additions & 26 deletions .gometalinter.json

This file was deleted.

2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ fmtcheck:
@gofmt -l -s ./$(PKG_NAME)

lint:
@gometalinter ./$(PKG_NAME)
@golangci-lint run ./$(PKG_NAME)

test: fmtcheck
@go test ./$(PKG_NAME) -timeout=30s -parallel=4 -cover
Expand Down
7 changes: 4 additions & 3 deletions dwapi/api.go
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@ func (c *Client) encodeBody(body interface{}) (io.Reader, error) {
return b, nil
}

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

r, err := http.NewRequest(headers.Method, url, body)
Expand Down Expand Up @@ -139,7 +139,6 @@ func (c *Client) rawRequest(headers *headers, body io.Reader) (io.Reader, error)
if response.StatusCode != http.StatusOK {
return nil, errors.New(response.Status)
}

return response.Body, nil
}

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

return c.unmarshal(r, response)
err = c.unmarshal(r, response)
r.Close()
return
}

func (c *Client) requestMultiplePages(endpoint string, response interface{}) error {
Expand Down
21 changes: 14 additions & 7 deletions dwapi/datasets.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,15 +26,17 @@ type DatasetService struct {
client *Client
}

func (s *DatasetService) AddFilesFromURLs(owner, datasetid string, body *FileCreateRequest) (response SuccessResponse, err error) {
func (s *DatasetService) AddFilesFromURLs(owner, datasetid string, body *FileCreateRequest) (
response SuccessResponse, err error) {
return s.client.File.AddFilesFromURLs(owner, datasetid, body)
}

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

func (s *DatasetService) AssociateDOIWithVersion(owner, datasetid, versionid, doi string) (response SuccessResponse, err error) {
func (s *DatasetService) AssociateDOIWithVersion(owner, datasetid, versionid, doi string) (
response SuccessResponse, err error) {
return s.client.DOI.AssociateWithVersion(owner, datasetid, versionid, doi)
}

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

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

func (s *DatasetService) DeleteDOIAssociatedWithVersion(owner, datasetid, versionid, doi string) (response SuccessResponse, err error) {
func (s *DatasetService) DeleteDOIAssociatedWithVersion(owner, datasetid, versionid, doi string) (
response SuccessResponse, err error) {
return s.client.DOI.DeleteAssociatedWithVersion(owner, datasetid, versionid, doi)
}

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

func (s *DatasetService) DownloadAndSaveFile(owner, datasetid, filename, path string) (response SuccessResponse, err error) {
func (s *DatasetService) DownloadAndSaveFile(owner, datasetid, filename, path string) (
response SuccessResponse, err error) {
return s.client.File.DownloadAndSave(owner, datasetid, filename, path)
}

Expand Down Expand Up @@ -106,7 +111,8 @@ func (s *DatasetService) Retrieve(owner, datasetid string) (response DatasetSumm
return
}

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

func (s *DatasetService) UploadFile(owner, id, filename, path string, expandArchive bool) (response SuccessResponse, err error) {
func (s *DatasetService) UploadFile(owner, id, filename, path string, expandArchive bool) (
response SuccessResponse, err error) {
return s.client.File.Upload(owner, id, filename, path, expandArchive)
}
6 changes: 4 additions & 2 deletions dwapi/dois.go
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,8 @@ func (s *DoiService) Associate(owner, datasetid, doi string) (response SuccessRe
return
}

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

func (s *DoiService) DeleteAssociatedWithVersion(owner, datasetid, versionid, doi string) (response SuccessResponse, err error) {
func (s *DoiService) DeleteAssociatedWithVersion(owner, datasetid, versionid, doi string) (
response SuccessResponse, err error) {
endpoint := fmt.Sprintf("/datasets/%s/%s/v/%s/dois/%s", owner, datasetid, versionid, doi)
headers := s.client.buildHeaders(DELETE, endpoint)
err = s.client.request(headers, nil, &response)
Expand Down
16 changes: 10 additions & 6 deletions dwapi/files.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,8 @@ type FileService struct {
client *Client
}

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

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

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

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

if expandArchive {
endpoint = endpoint + "?expandArchive=true"
endpoint += "?expandArchive=true"
}

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

err = s.client.unmarshal(r, &response)
r.Close()
return
}

func (s *FileService) Upload(owner, id, filename, path string, expandArchive bool) (response SuccessResponse, err error) {
func (s *FileService) Upload(owner, id, filename, path string, expandArchive bool) (
response SuccessResponse, err error) {
f, err := os.Open(path)
if err != nil {
return
Expand Down
12 changes: 8 additions & 4 deletions dwapi/insights.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,8 @@ type InsightService struct {
client *Client
}

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

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

func (s *InsightService) RetrieveVersion(owner, projectid, insightid, versionid string) (response InsightSummaryResponse, err error) {
func (s *InsightService) RetrieveVersion(owner, projectid, insightid, versionid string) (
response InsightSummaryResponse, err error) {
endpoint := fmt.Sprintf("/insights/%s/%s/%s/v/%s", owner, projectid, insightid, versionid)
headers := s.client.buildHeaders(GET, endpoint)
err = s.client.request(headers, nil, &response)
return
}

func (s *InsightService) Update(owner, projectid, insightid string, body *InsightUpdateRequest) (response SuccessResponse, err error) {
func (s *InsightService) Update(owner, projectid, insightid string, body *InsightUpdateRequest) (
response SuccessResponse, err error) {
endpoint := fmt.Sprintf("/insights/%s/%s/%s", owner, projectid, insightid)
headers := s.client.buildHeaders(PATCH, endpoint)
err = s.client.request(headers, body, &response)
Expand Down
45 changes: 32 additions & 13 deletions dwapi/models.go
Original file line number Diff line number Diff line change
Expand Up @@ -238,28 +238,47 @@ type ProjectSummaryResponse struct {
Visibility string `json:"visibility"`
}

type QueryCreateRequest struct {
Name string `json:"name"`
Content string `json:"content"`
Language string `json:"language"`
Published bool `json:"published,omitempty"`
}

type QueryParameter struct {
Type string `json:"type,omitempty"`
Datatype string `json:"datatype,omitempty"`
}

type QuerySummaryResponse struct {
Body string `json:"body,omitempty"`
Created string `json:"created,omitempty"`
ID string `json:"id,omitempty"`
Language string `json:"language,omitempty"`
Name string `json:"name,omitempty"`
Owner string `json:"owner,omitempty"`
Updated string `json:"updated,omitempty"`
Version string `json:"version,omitempty"`
Body string `json:"body,omitempty"`
Created string `json:"created,omitempty"`
ID string `json:"id,omitempty"`
Language string `json:"language,omitempty"`
Name string `json:"name,omitempty"`
Owner string `json:"owner,omitempty"`
Updated string `json:"updated,omitempty"`
Version string `json:"version,omitempty"`
Parameters map[string]QueryParameter `json:"parameters,omitempty"`
}

type QueryUpdateRequest struct {
Name string `json:"name"`
Content string `json:"content"`
Published bool `json:"published,omitempty"`
}

type SavedQueryExecutionRequest struct {
Parameters interface{} `json:"parameters,omitempty"`
IncludeTableSchema bool `json:"includeTableSchema,omitempty"`
MaxRows float64 `json:"maxRows,omitempty"`
Parameters map[string]string `json:"parameters,omitempty"`
IncludeTableSchema bool `json:"includeTableSchema,omitempty"`
MaxRows float64 `json:"maxRows,omitempty"`
}

type SparqlQueryRequest struct {
type SPARQLQueryRequest struct {
Query string `json:"query"`
}

type SqlQueryRequest struct {
type SQLQueryRequest struct {
Query string `json:"query"`
IncludeTableSchema bool `json:"includeTableSchema,omitempty"`
}
Expand Down
Loading

0 comments on commit e34f0b9

Please sign in to comment.