@@ -35,6 +35,7 @@ def put_resource(id):
3535
3636def update_resource (id , json , db ):
3737 resource = Resource .query .get (id )
38+ api_key = g .auth_key .apikey
3839
3940 if not resource :
4041 return redirect ('/404' )
@@ -54,11 +55,12 @@ def get_unique_resource_languages_as_strings():
5455
5556 try :
5657 logger .info (
57- f"Updating resource. Old data: { json_module .dumps (resource .serialize )} " )
58+ f"Updating resource. Old data: "
59+ f"{ json_module .dumps (resource .serialize (api_key ))} " )
5860 if json .get ('languages' ) is not None :
5961 old_languages = resource .languages [:]
6062 resource .languages = langs
61- index_object ['languages' ] = resource .serialize ['languages' ]
63+ index_object ['languages' ] = resource .serialize ( api_key ) ['languages' ]
6264 resource_languages = get_unique_resource_languages_as_strings ()
6365 for language in old_languages :
6466 if language .name not in resource_languages :
@@ -99,7 +101,9 @@ def get_unique_resource_languages_as_strings():
99101 db .session .commit ()
100102
101103 return utils .standardize_response (
102- payload = dict (data = resource .serialize ),
104+ payload = dict (
105+ data = resource .serialize (api_key )
106+ ),
103107 datatype = "resource"
104108 )
105109
@@ -124,19 +128,24 @@ def change_votes(id, vote_direction):
124128@latency_summary .time ()
125129@failures_counter .count_exceptions ()
126130@bp .route ('/resources/<int:id>/click' , methods = ['PUT' ])
131+ @authenticate (allow_no_auth_key = True )
127132def update_resource_click (id ):
128133 return add_click (id )
129134
130135
131- def update_votes (id , vote_direction ):
136+ def update_votes (id , vote_direction_attribute ):
132137 resource = Resource .query .get (id )
133138
134139 if not resource :
135140 return redirect ('/404' )
136141
137- initial_count = getattr (resource , vote_direction )
138- opposite_direction = 'downvotes' if vote_direction == 'upvotes' else 'upvotes'
139- opposite_count = getattr (resource , opposite_direction )
142+ initial_count = getattr (resource , vote_direction_attribute )
143+ vote_direction = vote_direction_attribute [:- 1 ]
144+
145+ opposite_direction_attribute = 'downvotes' \
146+ if vote_direction_attribute == 'upvotes' else 'upvotes'
147+ opposite_direction = opposite_direction_attribute [:- 1 ]
148+ opposite_count = getattr (resource , opposite_direction_attribute )
140149
141150 api_key = g .auth_key .apikey
142151 vote_info = VoteInformation .query .get (
@@ -152,25 +161,27 @@ def update_votes(id, vote_direction):
152161 )
153162 new_vote_info .voter = voter
154163 resource .voters .append (new_vote_info )
155- setattr (resource , vote_direction , initial_count + 1 )
164+ setattr (resource , vote_direction_attribute , initial_count + 1 )
156165 else :
157166 if vote_info .current_direction == vote_direction :
158- setattr (resource , vote_direction , initial_count - 1 )
159- setattr (vote_info , 'current_direction' , ' None' )
167+ setattr (resource , vote_direction_attribute , initial_count - 1 )
168+ setattr (vote_info , 'current_direction' , None )
160169 else :
161- setattr (resource , opposite_direction , opposite_count - 1 ) \
170+ setattr (resource , opposite_direction_attribute , opposite_count - 1 ) \
162171 if vote_info .current_direction == opposite_direction else None
163- setattr (resource , vote_direction , initial_count + 1 )
172+ setattr (resource , vote_direction_attribute , initial_count + 1 )
164173 setattr (vote_info , 'current_direction' , vote_direction )
165174 db .session .commit ()
166175
167176 return utils .standardize_response (
168- payload = dict (data = resource .serialize ),
169- datatype = "resource" )
177+ payload = dict (data = resource .serialize (api_key )),
178+ datatype = "resource"
179+ )
170180
171181
172182def add_click (id ):
173183 resource = Resource .query .get (id )
184+ api_key = g .auth_key .apikey if g .auth_key else None
174185
175186 if not resource :
176187 return redirect ('/404' )
@@ -180,5 +191,5 @@ def add_click(id):
180191 db .session .commit ()
181192
182193 return utils .standardize_response (
183- payload = dict (data = resource .serialize ),
194+ payload = dict (data = resource .serialize ( api_key ) ),
184195 datatype = "resource" )
0 commit comments