summaryrefslogtreecommitdiff
path: root/models/artist.py
diff options
context:
space:
mode:
authorMichaël Ball <michael.ball@gmail.com>2014-12-24 17:52:04 +0000
committerMichaël Ball <michael.ball@gmail.com>2014-12-24 17:52:04 +0000
commit601198884d58c0f3825e7108a9adb4dc4353ff5c (patch)
tree61740d70677e3da94ded71d8a9a6ec741dd5b24c /models/artist.py
parent765a2d306b1d64480933999af96a7df6e9053934 (diff)
Better searching methods
Diffstat (limited to 'models/artist.py')
-rw-r--r--models/artist.py20
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")