File tree Expand file tree Collapse file tree 3 files changed +31
-23
lines changed
python-django/query_parser
ruby-on-rails/app/controllers Expand file tree Collapse file tree 3 files changed +31
-23
lines changed Original file line number Diff line number Diff line change 3
3
$ parameters = new stdClass ();;
4
4
5
5
foreach ($ _GET as $ param => $ value ) {
6
- if ( $ param === ' cast_to_boolean ' ) {
7
- $ value = boolval ( $ value );
8
- } else if ( $ param === ' cast_to_integer ' ) {
9
- $ value = intval ( $ value );
10
- } else if ( $ param === ' cast_to_float ' ) {
11
- $ value = floatval ( $ value );
12
- } else if ( $ param === ' cast_to_date_time ' ) {
13
- try {
6
+ try {
7
+ if ( $ param === ' cast_to_boolean ' ) {
8
+ $ value = boolval ( $ value );
9
+ } else if ( $ param === ' cast_to_integer ' ) {
10
+ $ value = intval ( $ value );
11
+ } else if ( $ param === ' cast_to_float ' ) {
12
+ $ value = floatval ( $ value );
13
+ } else if ( $ param === ' cast_to_date_time ' ) {
14
14
$ value = date_create ($ value )->format ('Y-m-d\TH:i:s.v\Z ' );
15
- } catch (Error $ error ) {
16
- $ value = null ;
17
15
}
16
+ } catch (Error $ error ) {
17
+ $ value = null ;
18
+ http_response_code (400 );
18
19
}
19
20
20
21
$ parameters ->$ param = $ value ;
Original file line number Diff line number Diff line change @@ -7,25 +7,30 @@ def index(request):
7
7
parameters = {}
8
8
for param in request .GET :
9
9
parameters [param ] = request .GET .get (param )
10
+ status = 200
10
11
11
12
if (param == 'cast_to_integer' ):
12
13
try :
13
14
parameters [param ] = int (parameters [param ])
14
15
except :
15
16
parameters [param ] = None
17
+ status = 400
16
18
if (param == 'cast_to_float' ):
17
19
try :
18
20
parameters [param ] = float (parameters [param ])
19
21
except :
20
22
parameters [param ] = None
23
+ status = 400
21
24
if (param == 'cast_to_boolean' ):
22
25
try :
23
26
parameters [param ] = bool (parameters [param ])
24
27
except :
25
28
parameters [param ] = None
29
+ status = 400
26
30
if (param == 'cast_to_date_time' ):
27
31
try :
28
32
parameters [param ] = datetime .fromisoformat (parameters [param ]).astimezone (timezone .utc ).strftime ("%Y-%m-%dT%H:%M:%S.%f" )[:- 3 ]+ 'Z'
29
33
except :
30
34
parameters [param ] = None
31
- return JsonResponse (parameters )
35
+ status = 400
36
+ return JsonResponse (parameters , status = status )
Original file line number Diff line number Diff line change @@ -3,22 +3,24 @@ def parse
3
3
parameters = { }
4
4
request . query_parameters . each do |param , value |
5
5
parameters [ param ] = value
6
+ status = :ok
6
7
7
- if param === 'cast_to_integer'
8
- parameters [ param ] = value . to_i
9
- elsif param === 'cast_to_float'
10
- parameters [ param ] = value . to_f
11
- elsif param === 'cast_to_boolean'
12
- parameters [ param ] = ActiveModel :: Type :: Boolean . new . cast ( value )
13
- elsif param === 'cast_to_date_time'
14
- begin
8
+ begin
9
+ if param === 'cast_to_integer'
10
+ parameters [ param ] = value . to_i
11
+ elsif param === 'cast_to_float'
12
+ parameters [ param ] = value . to_f
13
+ elsif param === 'cast_to_boolean'
14
+ parameters [ param ] = ActiveModel :: Type :: Boolean . new . cast ( value )
15
+ elsif param === 'cast_to_date_time'
15
16
parameters [ param ] = DateTime . parse ( value ) . new_offset ( 0 ) . rfc3339 ( 3 ) . sub ( /\+ 00\: 00/ , 'Z' )
16
- rescue Exception
17
- parameters [ param ] = nil
18
17
end
18
+ rescue Exception
19
+ parameters [ param ] = nil
20
+ status = :bad_request
19
21
end
20
- end
21
22
22
- render :json => parameters
23
+ render :json => parameters , :status => status
24
+ end
23
25
end
24
26
end
You can’t perform that action at this time.
0 commit comments