diff options
author | Robert Schilling <rschilling@student.tugraz.at> | 2017-02-20 14:24:09 +0100 |
---|---|---|
committer | Robert Schilling <rschilling@student.tugraz.at> | 2017-02-20 14:24:09 +0100 |
commit | 612e61f4c4c374f4a47ea6d8a3b71fd40c41ac19 (patch) | |
tree | f98f24a8d838fde4c471f75e301e2c48a0b44d23 /lib | |
parent | c89449e6110c2bdf6e1410bae3e7b7d807c5e305 (diff) | |
download | gitlab-ce-612e61f4c4c374f4a47ea6d8a3b71fd40c41ac19.tar.gz |
Use grape validation for datesapi-grape-datetime
Diffstat (limited to 'lib')
-rw-r--r-- | lib/api/commits.rb | 7 | ||||
-rw-r--r-- | lib/api/helpers.rb | 16 |
2 files changed, 2 insertions, 21 deletions
diff --git a/lib/api/commits.rb b/lib/api/commits.rb index 173083d0ade..f0ed5f34419 100644 --- a/lib/api/commits.rb +++ b/lib/api/commits.rb @@ -16,16 +16,13 @@ module API end params do optional :ref_name, type: String, desc: 'The name of a repository branch or tag, if not given the default branch is used' - optional :since, type: String, desc: 'Only commits after or in this date will be returned' - optional :until, type: String, desc: 'Only commits before or in this date will be returned' + optional :since, type: DateTime, desc: 'Only commits after or in this date will be returned' + optional :until, type: DateTime, desc: 'Only commits before or in this date will be returned' optional :page, type: Integer, default: 0, desc: 'The page for pagination' optional :per_page, type: Integer, default: 20, desc: 'The number of results per page' optional :path, type: String, desc: 'The file path' end get ":id/repository/commits" do - # TODO remove the next line for 9.0, use DateTime type in the params block - datetime_attributes! :since, :until - ref = params[:ref_name] || user_project.try(:default_branch) || 'master' offset = params[:page] * params[:per_page] diff --git a/lib/api/helpers.rb b/lib/api/helpers.rb index 13896dd91b9..7b6fae866eb 100644 --- a/lib/api/helpers.rb +++ b/lib/api/helpers.rb @@ -160,22 +160,6 @@ module API ActionController::Parameters.new(attrs).permit! end - # Checks the occurrences of datetime attributes, each attribute if present in the params hash must be in ISO 8601 - # format (YYYY-MM-DDTHH:MM:SSZ) or a Bad Request error is invoked. - # - # Parameters: - # keys (required) - An array consisting of elements that must be parseable as dates from the params hash - def datetime_attributes!(*keys) - keys.each do |key| - begin - params[key] = Time.xmlschema(params[key]) if params[key].present? - rescue ArgumentError - message = "\"" + key.to_s + "\" must be a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ" - render_api_error!(message, 400) - end - end - end - def filter_by_iid(items, iid) items.where(iid: iid) end |