9
9
@expose ('/apijson' )
10
10
class ApiJson (object ):
11
11
def __begin__ (self ):
12
+ self .rdict = {
13
+ "code" :200 ,
14
+ "msg" :"success"
15
+ }
16
+
12
17
try :
13
18
self .request_data = loads (request .data )
14
19
except Exception as e :
15
20
log .error ("try to load json but get exception: '%s', request data: %s" % (e ,request .data ))
16
21
return json ({"code" :400 ,"msg" :"not json data in the request" })
17
22
18
23
def get (self ):
19
- self .rdict = {
20
- "code" :200 ,
21
- "msg" :"success"
22
- }
23
24
for key in self .request_data :
24
25
if key [- 2 :]== "[]" :
25
26
rsp = self ._query_array (key )
@@ -44,7 +45,7 @@ def _query_one(self,key):
44
45
if not public :
45
46
if not request .user :
46
47
return json ({"code" :401 ,"msg" :"'%s' not accessable for unauthorized request" % (modelname )})
47
- owner_filtered ,q = self ._filter_owner (model ,q )
48
+ owner_filtered ,q = self ._filter_owner (model ,model_setting , q )
48
49
if owner_filtered :
49
50
filtered = True
50
51
else :
@@ -157,7 +158,7 @@ def _query_array(self,key):
157
158
if not public :
158
159
if not request .user :
159
160
return json ({"code" :401 ,"msg" :"'%s' not accessable for unauthorized request" % (modelname )})
160
- owner_filtered ,q = self ._filter_owner (model ,q )
161
+ owner_filtered ,q = self ._filter_owner (model ,model_setting , q )
161
162
if not owner_filtered :
162
163
return json ({"code" :401 ,"msg" :"'%s' not accessable because not public" % (modelname )})
163
164
@@ -175,7 +176,7 @@ def _get_info(i):
175
176
l = [_get_info (i ) for i in q ]
176
177
self .rdict [key ] = l
177
178
178
- def _filter_owner (model ,q ):
179
+ def _filter_owner (self , model , model_setting ,q ):
179
180
owner_filtered = False
180
181
if hasattr (model ,"owner_condition" ):
181
182
q = q .filter (model .owner_condition ())
@@ -186,3 +187,6 @@ def _filter_owner(model,q):
186
187
q = q .filter (getattr (model .c ,user_id_field )== request .user .id )
187
188
owner_filtered = True
188
189
return owner_filtered ,q
190
+
191
+ def post (self ):
192
+ return json (self .rdict )
0 commit comments