예제 #1
0
    def to_json_fields_for_FE(self, current_user_id, user_img_tag=[]):
        user = User.find_user_by_id(self.poster_id)
        cur_user_vote = UserPost.get_vote_by_ids(current_user_id, self.post_id)
        cur_user_vote = cur_user_vote if cur_user_vote else 0

        img_data = []
        # retrieve image data from s3 if its an image
        if self.post_type.describe() == 1:
            key = self.get_s3_key()
            try:
                img_data = s3_client.get_object(\
                    Bucket='graffiti-post-images',\
                    Key=key)['Body'].read().decode('ascii')
            except:
                logger.error('Error retrieving image post: ' + key)
        return json.dumps(
            dict(postid=self.post_id,
                 type=self.post_type.describe(),
                 text=self.text,
                 location=dict(longitude=self.longitude,
                               latitude=self.latitude),
                 created_at=self.created_at,
                 poster=json.loads(user.to_json_fields_for_FE(user_img_tag)),
                 num_votes=self.num_votes,
                 current_user_vote=cur_user_vote,
                 image=img_data))