@@ -47,15 +47,15 @@ def _get_membership_by_id(membership_id):
47
47
def _get_officership_by_id (officership_id ):
48
48
return models .Officership .query .get (officership_id )
49
49
50
- def _get_post_by_list (list_id ):
51
- return models .Post .query .filter_by (
50
+ def _get_post_by_list (list_id , page , pagesize ):
51
+ return list ( models .Post .query .filter_by (
52
52
list = list_id ).order_by (
53
- models .Post .index ).all ( )
53
+ models .Post .index ).limit ( pagesize ). offset ( page - 1 ) )
54
54
55
- def _get_event_by_list (list_id ):
56
- return models .Event .query .filter_by (
55
+ def _get_event_by_list (list_id , page , pagesize ):
56
+ return list ( models .Event .query .filter_by (
57
57
list = list_id ).order_by (
58
- models .Event .index ).all ( )
58
+ models .Event .index ).limit ( pagesize ). offset ( page - 1 ) )
59
59
60
60
class Root (restful .Resource ):
61
61
@marshal_with (root_fields )
@@ -66,11 +66,18 @@ class Events(restful.Resource):
66
66
67
67
def get (self , event_id = None ):
68
68
69
+ parser = reqparse .RequestParser (argument_class = CustomArgument )
70
+
71
+ parser .add_argument ('page' , type = int , default = 1 )
72
+ parser .add_argument ('pagesize' , type = int )
73
+
74
+ args = parser .parse_args ()
75
+
69
76
DB .create_all ()
70
77
71
78
if event_id :
72
79
73
- event = _get_event_by_list (event_id )
80
+ event = _get_event_by_list (event_id , args . page , args . pagesize )
74
81
if not event :
75
82
_handle_error (LookupError ('event not found' ))
76
83
@@ -87,12 +94,12 @@ def get(self, event_id=None):
87
94
events = DB .session .query (models .Event )\
88
95
.join (sub , models .Event .index == sub .c .max_index )\
89
96
.filter (models .Event .list == sub .c .list )\
90
- .all ( )
97
+ .limit ( args . pagesize ). offset ( args . page - 1 )
91
98
92
99
return list (map (
93
100
lambda event :
94
101
marshal (event , event_fields ),
95
- events ))
102
+ list ( events ) ))
96
103
97
104
@AUTH .login_required
98
105
def post (self ):
@@ -111,6 +118,8 @@ def post(self):
111
118
parser .add_argument ('location' , type = str )
112
119
parser .add_argument ('start' , type = datetime_type , required = True )
113
120
parser .add_argument ('end' , type = datetime_type , required = True )
121
+ parser .add_argument ('page' , type = int , default = 1 )
122
+ parser .add_argument ('pagesize' , type = int )
114
123
115
124
args = parser .parse_args ()
116
125
@@ -198,11 +207,18 @@ class Posts(restful.Resource):
198
207
199
208
def get (self , post_id = None ):
200
209
210
+ parser = reqparse .RequestParser (argument_class = CustomArgument )
211
+
212
+ parser .add_argument ('page' , type = int , default = 1 )
213
+ parser .add_argument ('pagesize' , type = int )
214
+
215
+ args = parser .parse_args ()
216
+
201
217
DB .create_all ()
202
218
203
219
if post_id :
204
220
205
- posts = _get_post_by_list (post_id )
221
+ posts = _get_post_by_list (post_id , args . page , args . pagesize )
206
222
if not posts :
207
223
_handle_error (LookupError ('post not found' ))
208
224
@@ -219,12 +235,12 @@ def get(self, post_id=None):
219
235
posts = DB .session .query (models .Post )\
220
236
.join (sub , models .Post .index == sub .c .max_index )\
221
237
.filter (models .Post .list == sub .c .list )\
222
- .all ( )
238
+ .limit ( args . pagesize ). offset ( args . page - 1 )
223
239
224
240
return list (map (
225
241
lambda post :
226
242
marshal (post , post_fields ),
227
- posts ))
243
+ list ( posts ) ))
228
244
229
245
@AUTH .login_required
230
246
def post (self ):
@@ -237,6 +253,8 @@ def post(self):
237
253
parser .add_argument ('description' , type = str )
238
254
parser .add_argument ('content' , type = str )
239
255
parser .add_argument ('hidden' , type = bool , default = False )
256
+ parser .add_argument ('page' , type = int , default = 1 )
257
+ parser .add_argument ('pagesize' , type = int )
240
258
241
259
args = parser .parse_args ()
242
260
@@ -312,6 +330,13 @@ class People(restful.Resource):
312
330
313
331
def get (self , person_id = None , username = None ):
314
332
333
+ parser = reqparse .RequestParser (argument_class = CustomArgument )
334
+
335
+ parser .add_argument ('page' , type = int , default = 1 )
336
+ parser .add_argument ('pagesize' , type = int )
337
+
338
+ args = parser .parse_args ()
339
+
315
340
DB .create_all ()
316
341
317
342
if person_id or username :
@@ -332,12 +357,12 @@ def get(self, person_id=None, username=None):
332
357
333
358
else :
334
359
335
- people = models .Person .query .all ( )
360
+ people = models .Person .query .limit ( args . pagesize ). offset ( args . page - 1 )
336
361
337
362
return list (map (
338
363
lambda person :
339
364
marshal (person , person_fields ),
340
- people ))
365
+ list ( people ) ))
341
366
342
367
@AUTH .login_required
343
368
def post (self ):
@@ -458,7 +483,14 @@ def delete(self, person_id=None, username=None):
458
483
class Memberships (restful .Resource ):
459
484
460
485
def get (self , membership_id = None ):
461
-
486
+
487
+ parser = reqparse .RequestParser (argument_class = CustomArgument )
488
+
489
+ parser .add_argument ('page' , type = int , default = 1 )
490
+ parser .add_argument ('pagesize' , type = int )
491
+
492
+ args = parser .parse_args ()
493
+
462
494
DB .create_all ()
463
495
464
496
if membership_id :
@@ -475,7 +507,7 @@ def get(self, membership_id=None):
475
507
return list (map (
476
508
lambda membership :
477
509
marshal (membership , membership_fields ),
478
- models .Membership .query .all ( )))
510
+ list ( models .Membership .query .limit ( args . pagesize ). offset ( args . page - 1 ) )))
479
511
480
512
@AUTH .login_required
481
513
def post (self ):
@@ -569,6 +601,13 @@ class Officerships(restful.Resource):
569
601
570
602
def get (self , officership_id = None ):
571
603
604
+ parser = reqparse .RequestParser (argument_class = CustomArgument )
605
+
606
+ parser .add_argument ('page' , type = int , default = 1 )
607
+ parser .add_argument ('pagesize' , type = int )
608
+
609
+ args = parser .parse_args ()
610
+
572
611
DB .create_all ()
573
612
574
613
if officership_id :
@@ -585,7 +624,7 @@ def get(self, officership_id=None):
585
624
return list (map (
586
625
lambda officership :
587
626
marshal (officership , officership_fields ),
588
- models .Officership .query .all ( )))
627
+ list ( models .Officership .query .limit ( args . pagesize ). offset ( args . page - 1 ) )))
589
628
590
629
@AUTH .login_required
591
630
def post (self ):
@@ -675,6 +714,14 @@ class Database(restful.Resource):
675
714
676
715
@AUTH .login_required
677
716
def get (self ):
717
+
718
+ parser = reqparse .RequestParser (argument_class = CustomArgument )
719
+
720
+ parser .add_argument ('page' , type = int , default = 1 )
721
+ parser .add_argument ('pagesize' , type = int )
722
+
723
+ args = parser .parse_args ()
724
+
678
725
parsed_url = urlparse (current_app .config ['SQLALCHEMY_DATABASE_URI' ])
679
726
680
727
username , password , host , port = None , None , None , None
0 commit comments