diff options
author | Michaël Ball <michael.ball@gmail.com> | 2014-12-24 17:52:04 +0000 |
---|---|---|
committer | Michaël Ball <michael.ball@gmail.com> | 2014-12-24 17:52:04 +0000 |
commit | 601198884d58c0f3825e7108a9adb4dc4353ff5c (patch) | |
tree | 61740d70677e3da94ded71d8a9a6ec741dd5b24c /models/artist.py | |
parent | 765a2d306b1d64480933999af96a7df6e9053934 (diff) |
Better searching methods
Diffstat (limited to 'models/artist.py')
-rw-r--r-- | models/artist.py | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/models/artist.py b/models/artist.py index eaae27e..7d36457 100644 --- a/models/artist.py +++ b/models/artist.py @@ -87,22 +87,36 @@ class Artist: set_clause = utils.update_clause_from_dict(dirty_attributes) dirty_attributes[id] = self.id - + sql = " ".join(("UPDATE artist"), set_clause, "WHERE id = :id") db.execute(sql, dirty_attributes) db.commit() def search(**search_params): + """Find an artist with the given params + + Args: + name: dict, with 'data' and 'operator' keys + sortname: dict, with 'data' and 'operator' keys + musicbrainz_artist_id: dict, with 'data' and 'operator' keys + """ artists = [] db = DbManager() - where_clause = utils.make_where_clause(search_params) + # unpack search params + where_params = {} + value_params = {} + for (attr, value) in search_params.items(): + where_params[attr] = value["operator"] + value_params[attr] = value["data"] + + where_clause = utils.make_where_clause(where_params) result = [] if where_clause: statement = " ".join(("SELECT * FROM artist", where_clause)) - result = db.execute(statement, search_params) + result = db.execute(statement, value_params) else: result = db.execute("SELECT * FROM artist") |