Skip to content

Commit ee89a79

Browse files
committed
Documents and patch activity refactoring
1 parent 29c3aa1 commit ee89a79

File tree

2 files changed

+36
-35
lines changed

2 files changed

+36
-35
lines changed

activities/activities.py

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
from documents import Activity
44
from pymongo import DESCENDING
55
from flask_cors import cross_origin
6+
from mongoalchemy.util import FieldNotFoundException
67
from mongoalchemy.exceptions import BadValueException, BadResultException
78

89
USER_ID = 12
@@ -37,10 +38,10 @@ def list_activities():
3738
@cross_origin()
3839
def patch_activity(activity_id):
3940
try:
40-
activity = session.query(Activity).filter(Activity.mongo_id == activity_id, Activity.user_id == USER_ID).one()
41-
except (BadValueException, BadResultException):
42-
abort(404)
41+
# TODO introduce validation or json schema
42+
query = session.query(Activity).filter(Activity.mongo_id == activity_id, Activity.user_id == USER_ID)
43+
query.set(**request.json).execute()
4344

44-
activity.clicked = True
45-
46-
return jsonify(activity.to_dict())
45+
return jsonify(query.one().to_dict())
46+
except (FieldNotFoundException, BadValueException):
47+
abort(400)

activities/documents.py

Lines changed: 29 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -7,23 +7,23 @@ class Activity(Document):
77
config_polymorphic = 'type'
88
config_polymorphic_collection = True
99

10-
type = StringField(on_update='ignore')
10+
type = StringField(on_update='ignore', )
1111
created_at = DateTimeField(on_update='ignore')
12-
clicked = BoolField()
12+
clicked = BoolField(required=True)
1313
user_id = IntField(on_update='ignore')
1414

1515

1616
class Like(Activity):
1717
config_polymorphic_identity = 'like'
1818

19-
performed_by = StringField()
20-
performer_avatar = StringField()
21-
post_id = IntField()
22-
post_image = StringField()
19+
performed_by = StringField(on_update='ignore')
20+
performer_avatar = StringField(on_update='ignore')
21+
post_id = IntField(on_update='ignore')
22+
post_image = StringField(on_update='ignore')
2323

2424
def to_dict(self):
2525
return {
26-
'id': self.mongo_id.__str__(),
26+
'id': str(self.mongo_id),
2727
'type': self.type,
2828
'performed_by': self.performed_by,
2929
'performer_avatar': self.performer_avatar,
@@ -37,14 +37,14 @@ def to_dict(self):
3737
class Comment(Activity):
3838
config_polymorphic_identity = 'comment'
3939

40-
performed_by = StringField()
41-
performer_avatar = StringField()
42-
post_id = IntField()
43-
post_image = StringField()
40+
performed_by = StringField(on_update='ignore')
41+
performer_avatar = StringField(on_update='ignore')
42+
post_id = IntField(on_update='ignore')
43+
post_image = StringField(on_update='ignore')
4444

4545
def to_dict(self):
4646
return {
47-
'id': self.mongo_id.__str__(),
47+
'id': str(self.mongo_id),
4848
'type': self.type,
4949
'performed_by': self.performed_by,
5050
'performer_avatar': self.performer_avatar,
@@ -58,14 +58,14 @@ def to_dict(self):
5858
class Repost(Activity):
5959
config_polymorphic_identity = 'repost'
6060

61-
performed_by = StringField()
62-
performer_avatar = StringField()
63-
post_id = IntField()
64-
post_image = StringField()
61+
performed_by = StringField(on_update='ignore')
62+
performer_avatar = StringField(on_update='ignore')
63+
post_id = IntField(on_update='ignore')
64+
post_image = StringField(on_update='ignore')
6565

6666
def to_dict(self):
6767
return {
68-
'id': self.mongo_id.__str__(),
68+
'id': str(self.mongo_id),
6969
'type': self.type,
7070
'performed_by': self.performed_by,
7171
'performer_avatar': self.performer_avatar,
@@ -79,12 +79,12 @@ def to_dict(self):
7979
class Follow(Activity):
8080
config_polymorphic_identity = 'follow'
8181

82-
performed_by = StringField()
83-
performer_avatar = StringField()
82+
performed_by = StringField(on_update='ignore')
83+
performer_avatar = StringField(on_update='ignore')
8484

8585
def to_dict(self):
8686
return {
87-
'id': self.mongo_id.__str__(),
87+
'id': str(self.mongo_id),
8888
'type': self.type,
8989
'performed_by': self.performed_by,
9090
'performer_avatar': self.performer_avatar,
@@ -96,14 +96,14 @@ def to_dict(self):
9696
class Mention(Activity):
9797
config_polymorphic_identity = 'mention'
9898

99-
performed_by = StringField()
100-
performer_avatar = StringField()
101-
post_id = IntField()
102-
post_image = StringField()
99+
performed_by = StringField(on_update='ignore')
100+
performer_avatar = StringField(on_update='ignore')
101+
post_id = IntField(on_update='ignore')
102+
post_image = StringField(on_update='ignore')
103103

104104
def to_dict(self):
105105
return {
106-
'id': self.mongo_id.__str__(),
106+
'id': str(self.mongo_id),
107107
'type': self.type,
108108
'performed_by': self.performed_by,
109109
'performer_avatar': self.performer_avatar,
@@ -117,10 +117,10 @@ def to_dict(self):
117117
class Badge(Activity):
118118
config_polymorphic_identity = 'badge'
119119

120-
badge_name = StringField()
121-
badge_image = StringField()
122-
post_id = IntField()
123-
post_image = StringField()
120+
badge_name = StringField(on_update='ignore')
121+
badge_image = StringField(on_update='ignore')
122+
post_id = IntField(on_update='ignore')
123+
post_image = StringField(on_update='ignore')
124124

125125
def to_dict(self):
126126
return {

0 commit comments

Comments
 (0)