Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

NOISSUE - Search by metadata #849

Merged
merged 27 commits into from
Sep 17, 2019
Merged

NOISSUE - Search by metadata #849

merged 27 commits into from
Sep 17, 2019

Conversation

mteodor
Copy link
Contributor

@mteodor mteodor commented Sep 11, 2019

What does this do?

Add searching things by metadata

Have you included tests for your changes?

Yes

Did you document any new/modified functionality?

Yes

Notes

Copy link
Contributor

@drasko drasko left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No remaks on the logic. just a minor remarks on a code style.

docs/provisioning.md Outdated Show resolved Hide resolved
things/api/things/http/transport.go Show resolved Hide resolved
things/postgres/things.go Show resolved Hide resolved
@codecov-io
Copy link

codecov-io commented Sep 15, 2019

Codecov Report

Merging #849 into master will decrease coverage by 0.14%.
The diff coverage is 75%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master     #849      +/-   ##
==========================================
- Coverage   85.53%   85.39%   -0.15%     
==========================================
  Files          72       72              
  Lines        4708     4737      +29     
==========================================
+ Hits         4027     4045      +18     
- Misses        445      453       +8     
- Partials      236      239       +3
Impacted Files Coverage Δ
things/api/things/http/requests.go 83.87% <ø> (ø) ⬆️
things/redis/streams.go 90.47% <100%> (ø) ⬆️
things/api/things/http/endpoint.go 98.23% <100%> (ø) ⬆️
things/service.go 86.61% <100%> (ø) ⬆️
things/postgres/init.go 92.59% <100%> (+1.1%) ⬆️
things/api/things/http/transport.go 93.11% <52.63%> (-3.44%) ⬇️
things/postgres/things.go 81.25% <84.61%> (-0.35%) ⬇️

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update a6cf767...5003558. Read the comment docs.

@drasko
Copy link
Contributor

drasko commented Sep 16, 2019

@mteodor this starts to look good.

Just one question - does this impact SDK and CLI?

@mteodor
Copy link
Contributor Author

mteodor commented Sep 16, 2019

@mteodor this starts to look good.

Just one question - does this impact SDK and CLI?

I dont think so, this affects only list things endpoint which is used in

func (sdk mfSDK) Things(token string, offset, limit uint64, name string) (ThingsPage, error)

but call to that enpoint will remain unchanged and results will be the same

things/api/things/http/requests.go Outdated Show resolved Hide resolved
@@ -57,14 +57,14 @@ func migrateDB(db *sqlx.DB) error {
owner VARCHAR(254),
key VARCHAR(4096) UNIQUE NOT NULL,
name VARCHAR(1024),
metadata JSON,
metadata JSONB,
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please consider adding a separate migration for type change, rather than changing data type this way.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@dusanb94 I do not see the need to support JSON anymore. Pre 1.0 can stil break APIs and we are not in obligation to drag with us unneeded field.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It would be easier for us because we wouldn't need to change schema manually (no need to drop/change in Docker volumes, nor local DB). I agree we can remove that migration before production because this is <1.0, but adding even temporary migration will help (especially since it's done only once).

func readMetadataQuery(r *http.Request, key string) (interface{}, error) {
vals := bone.GetQuery(r, key)
if len(vals) > 1 {
return "", errInvalidQueryParams
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why string and not nil like in next lines?

PRIMARY KEY (id, owner)
)`,
`CREATE TABLE IF NOT EXISTS channels (
id UUID,
owner VARCHAR(254),
name VARCHAR(1024),
metadata JSON,
metadata JSONB,
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please do this as part of Channels metadata PR.

things/api/things/http/requests.go Outdated Show resolved Hide resolved
nmarcetic
nmarcetic previously approved these changes Sep 16, 2019
docs/provisioning.md Outdated Show resolved Hide resolved
things/postgres/things.go Outdated Show resolved Hide resolved
nmarcetic
nmarcetic previously approved these changes Sep 17, 2019
Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>
Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>
Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>
Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>
Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>
Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>
Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>
Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>
Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>
Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>
Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>
Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>
Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>
Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>
Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>
Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>
Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>
Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>
Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>
Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>
Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>
Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>
Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>
Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>
Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>
Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>
dborovcanin
dborovcanin previously approved these changes Sep 17, 2019
nmarcetic
nmarcetic previously approved these changes Sep 17, 2019
@@ -57,7 +57,7 @@ func migrateDB(db *sqlx.DB) error {
owner VARCHAR(254),
key VARCHAR(4096) UNIQUE NOT NULL,
name VARCHAR(1024),
metadata JSON,
metadata JSONB,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please remove this because you have the migration later on.

Copy link
Contributor

@drasko drasko left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

drasko
drasko previously approved these changes Sep 17, 2019
Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>
@mteodor mteodor dismissed stale reviews from drasko, nmarcetic, and dborovcanin via 5003558 September 17, 2019 13:35
Copy link
Contributor

@anovakovic01 anovakovic01 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@drasko drasko merged commit d20dfa8 into absmach:master Sep 17, 2019
@mteodor mteodor deleted the metadata branch September 22, 2020 10:37
manuio pushed a commit that referenced this pull request Oct 12, 2020
* add metadata search

Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>

* add metadata search

Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>

* add metadata search

Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>

* add metadata search

Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>

* add metadata search

Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>

* add metadata search

Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>

* add metadata search

Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>

* add space

Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>

* metadata test case

Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>

* add docs and update swagger

Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>

* add test for metadata

Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>

* add test for metadata

Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>

* remove commented out section

Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>

* small change to test

Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>

* remove debug printf

Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>

* small fix for metadata

Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>

* fix tests

Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>

* and => and/or

Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>

* add line

Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>

* fix mixed func params

Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>

* metadata will be added to channels later

Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>

* fix return type

Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>

* fix typings

Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>

* fix typings

Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>

* add migration

Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>

* remove var

Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>

* respecting the order of migrations

Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants