예제 #1
0
 def get_all_ongoing_events(user: str):
     """
    :return: An ongoing event list
    """
     cnx = db_connector.get_connection()
     cursor = cnx.cursor()
     query = ("SELECT * FROM event " "where `time` >= now()")
     cursor.execute(query)
     events = []
     for (eid, name, host, address, longi, lati, zipcode, event_time,
          description, image, num_likes, category) in cursor:
         new_event = Event(user=host,
                           name=name,
                           address=address,
                           longitude=longi,
                           latitude=lati,
                           zipcode=zipcode,
                           event_time=datetime.datetime.strptime(
                               str(event_time), "%Y-%m-%d %H:%M:%S"))
         new_event.event_id = eid
         new_event.description = description
         new_event.image = image
         new_event.num_likes = num_likes
         new_event.category = category
         if user:
             new_event.liked = Like.exist(user, eid)
             new_event.attended = Join.user_is_attend(user=user, event=eid)
         else:
             new_event.liked = False
             new_event.attended = False
         new_event.comments = Comment.get_comment_by_event(eid)
         events.append(new_event)
     cursor.close()
     cnx.close()
     return events
예제 #2
0
 def test_delete_comment_1(self):
     """
     Test delete_comment: comment exists
     """
     user = "******"
     event_id = self.event_id
     content = "this is a comment"
     time = datetime.strptime("2020-01-01 12:12:30", "%Y-%m-%d %H:%M:%S")
     comment = Comment(user=user,
                       content=content,
                       comment_time=time,
                       event=event_id)
     comment_id = Comment.create_comment(comment)
     comments = Comment.get_comment_by_event(event_id)
     self.assertEqual(len(comments), 1)
     Comment.delete_comment(comment_id)
     comments = Comment.get_comment_by_event(event_id)
     self.assertEqual(len(comments), 0)
예제 #3
0
 def test_get_comment_by_event_2(self):
     """
     Test get_comment_by_event: event doesn't exist
     """
     user = "******"
     event_id = '1'
     content = "this is a comment"
     time = datetime.strptime("2020-01-01 12:12:30", "%Y-%m-%d %H:%M:%S")
     comment = Comment(user=user,
                       content=content,
                       comment_time=time,
                       event=event_id)
     self.assertRaises(mysql.connector.Error, Comment.create_comment,
                       comment)
     comments = Comment.get_comment_by_event(event_id)
     self.assertEqual(len(comments), 0)
예제 #4
0
 def test_add_comment_1(self):
     """
     Test create_comment: user and event exists, comment length good
     """
     user = "******"
     content = "this is a comment"
     event_id = self.event_id
     time = datetime.strptime("2020-01-01 12:12:30", "%Y-%m-%d %H:%M:%S")
     comment = Comment(user=user,
                       content=content,
                       comment_time=time,
                       event=event_id)
     comment_id = Comment.create_comment(comment)
     comments = Comment.get_comment_by_event(event_id)
     self.assertEqual(len(comments), 1)
     self.assertIn(comment_id, comments[0].comment_id)
     Comment.delete_comment(comment_id)
예제 #5
0
    def get_event_by_id(event_id: str, user=None):
        """

        :param event_id: Id of the event
        :param user: user email
        :return: An event object whose id is the given event_id,
        and also indicates whether the user is attending the event
        """
        cnx = db_connector.get_connection()
        cursor = cnx.cursor()
        query = ("SELECT * FROM `event` WHERE id='" + event_id + "'")
        cursor.execute(query)
        new_event = None
        for (eid, name, host, address, longitude, latitude, zipcode,
             event_time, description, image, num_likes, category) in cursor:
            new_event = Event(user=host,
                              name=name,
                              address=address,
                              longitude=longitude,
                              latitude=latitude,
                              zipcode=zipcode,
                              event_time=datetime.datetime.strptime(
                                  str(event_time), "%Y-%m-%d %H:%M:%S"))
            new_event.event_id = eid
            new_event.description = description
            new_event.image = image
            new_event.num_likes = num_likes
            new_event.category = category
            if user:
                new_event.liked = Like.exist(user, event_id)
                new_event.attended = Join.user_is_attend(user=user,
                                                         event=event_id)
            else:
                new_event.liked = False
                new_event.attended = False
            new_event.comments = Comment.get_comment_by_event(event_id)
        cursor.close()
        cnx.close()
        return new_event