11from brainzutils .musicbrainz_db .models import ENTITY_MODELS
22from mbdata .utils .models import get_link_target
3- from sqlalchemy_dst import row2dict
43
54
65def serialize_begin_end (entity ):
76 begin_date = entity .begin_date
87 end_date = entity .end_date
98 begin = []
109 end = []
11- if begin_date .year :
10+ if begin_date and begin_date .year :
1211 begin .append (f'{ begin_date .year :04} ' )
1312 if begin_date .month :
1413 begin .append (f'{ begin_date .month :02} ' )
1514 if begin_date .day :
1615 begin .append (f'{ begin_date .day :02} ' )
17- if end_date .year :
16+
17+ if end_date and end_date .year :
1818 end .append (f'{ end_date .year :04} ' )
1919 if end_date .month :
2020 end .append (f'{ end_date .month :02} ' )
@@ -33,7 +33,7 @@ def serialize_areas(area, includes=None):
3333 if includes is None :
3434 includes = {}
3535 data = {
36- 'mbid' : area .gid ,
36+ 'mbid' : str ( area .gid ) ,
3737 'name' : area .name ,
3838 }
3939
@@ -68,7 +68,7 @@ def serialize_relationships(data, source_obj, relationship_objs):
6868 for obj in relationship_objs [relation ]:
6969 link_data = {
7070 'type' : obj .link .link_type .name ,
71- 'type-id' : obj .link .link_type .gid ,
71+ 'type-id' : str ( obj .link .link_type .gid ) ,
7272 'begin-year' : obj .link .begin_date_year ,
7373 'end-year' : obj .link .end_date_year ,
7474 }
@@ -84,7 +84,7 @@ def serialize_artist_credit(artist_credit):
8484 data = []
8585 for artist_credit_name in artist_credit .artists :
8686 artist_credit_data = {
87- 'mbid' : artist_credit_name .artist .gid ,
87+ 'mbid' : str ( artist_credit_name .artist .gid ) ,
8888 'name' : artist_credit_name .artist .name ,
8989 }
9090
@@ -104,7 +104,7 @@ def serialize_recording(recording, includes=None):
104104 if includes is None :
105105 includes = {}
106106 data = {
107- 'mbid' : recording .gid ,
107+ 'mbid' : str ( recording .gid ) ,
108108 'name' : recording .name ,
109109 }
110110
@@ -137,7 +137,7 @@ def serialize_places(place, includes=None):
137137 if includes is None :
138138 includes = {}
139139 data = {
140- 'mbid' : place .gid ,
140+ 'mbid' : str ( place .gid ) ,
141141 'name' : place .name ,
142142 'address' : place .address ,
143143 }
@@ -170,7 +170,7 @@ def serialize_labels(label, includes=None):
170170 if includes is None :
171171 includes = {}
172172 data = {
173- 'mbid' : label .gid ,
173+ 'mbid' : str ( label .gid ) ,
174174 'name' : label .name ,
175175 }
176176
@@ -200,7 +200,7 @@ def serialize_artists(artist, includes=None):
200200 if includes is None :
201201 includes = {}
202202 data = {
203- 'mbid' : artist .gid ,
203+ 'mbid' : str ( artist .gid ) ,
204204 'name' : artist .name ,
205205 'sort_name' : artist .sort_name ,
206206 }
@@ -239,7 +239,7 @@ def serialize_release_groups(release_group, includes=None):
239239 includes = {}
240240
241241 data = {
242- 'mbid' : release_group .gid ,
242+ 'mbid' : str ( release_group .gid ) ,
243243 'title' : release_group .name ,
244244 }
245245
@@ -291,12 +291,12 @@ def serialize_medium(medium, includes=None):
291291
292292def serialize_track (track ):
293293 return {
294- 'mbid' : track .gid ,
294+ 'mbid' : str ( track .gid ) ,
295295 'name' : track .name ,
296296 'number' : track .number ,
297297 'position' : track .position ,
298298 'length' : track .length ,
299- 'recording_id' : track .recording .gid ,
299+ 'recording_id' : str ( track .recording .gid ) ,
300300 'recording_title' : track .recording .name ,
301301 'artist-credit' : [serialize_artist_credit_names (artist_credit_name )
302302 for artist_credit_name in track .recording .artist_credit .artists ],
@@ -309,7 +309,7 @@ def serialize_releases(release, includes=None):
309309 includes = {}
310310
311311 data = {
312- 'mbid' : release .gid ,
312+ 'mbid' : str ( release .gid ) ,
313313 'name' : release .name ,
314314 }
315315
@@ -340,7 +340,7 @@ def serialize_events(event, includes=None):
340340 if includes is None :
341341 includes = {}
342342 data = {
343- 'mbid' : event .gid ,
343+ 'mbid' : str ( event .gid ) ,
344344 'name' : event .name ,
345345 }
346346
@@ -366,7 +366,7 @@ def serialize_url(url, includes=None):
366366 if includes is None :
367367 includes = {}
368368 data = {
369- 'mbid' : url .gid ,
369+ 'mbid' : str ( url .gid ) ,
370370 'url' : url .url ,
371371 }
372372
@@ -379,7 +379,7 @@ def serialize_works(work, includes=None):
379379 if includes is None :
380380 includes = {}
381381 data = {
382- 'mbid' : work .gid ,
382+ 'mbid' : str ( work .gid ) ,
383383 'name' : work .name ,
384384 }
385385
@@ -399,10 +399,25 @@ def serialize_works(work, includes=None):
399399
400400
401401def serialize_editor (editor , includes = None ):
402- data = row2dict (editor , exclude_pk = True , exclude = {'password' , 'ha1' })
403-
404402 # TODO: Add includes to data here (BU-18)
405-
403+ data = {
404+ "id" : editor .id ,
405+ "name" : editor .name ,
406+ "privs" : editor .privs ,
407+ "email" : editor .email ,
408+ "website" : editor .website ,
409+ "bio" : editor .bio ,
410+ "member_since" : editor .member_since ,
411+ "email_confirm_date" : editor .email_confirm_date ,
412+ "last_login_date" : editor .last_login_date ,
413+ "last_updated" : editor .last_updated ,
414+ "birth_date" : editor .birth_date ,
415+ "deleted" : editor .deleted ,
416+ "gender" : editor .gender ,
417+ "area" : None
418+ }
419+ if editor .area :
420+ data ["area" ] = serialize_areas (editor .area )
406421 return data
407422
408423
@@ -411,7 +426,7 @@ def serialize_series(series, includes=None):
411426 includes = {}
412427
413428 data = {
414- 'mbid' : series .gid ,
429+ 'mbid' : str ( series .gid ) ,
415430 'name' : series .name ,
416431 }
417432
0 commit comments