debian-mirror-gitlab/lib/api/api.rb

55 lines
1.4 KiB
Ruby
Raw Normal View History

2014-09-02 18:07:02 +05:30
Dir["#{Rails.root}/lib/api/*.rb"].each {|file| require file}
module API
class API < Grape::API
2015-04-26 12:48:37 +05:30
include APIGuard
2014-09-02 18:07:02 +05:30
version 'v3', using: :path
rescue_from ActiveRecord::RecordNotFound do
2015-04-26 12:48:37 +05:30
rack_response({ 'message' => '404 Not found' }.to_json, 404)
2014-09-02 18:07:02 +05:30
end
rescue_from :all do |exception|
# lifted from https://github.com/rails/rails/blob/master/actionpack/lib/action_dispatch/middleware/debug_exceptions.rb#L60
# why is this not wrapped in something reusable?
trace = exception.backtrace
message = "\n#{exception.class} (#{exception.message}):\n"
message << exception.annoted_source_code.to_s if exception.respond_to?(:annoted_source_code)
message << " " << trace.join("\n ")
API.logger.add Logger::FATAL, message
2015-09-11 14:41:01 +05:30
rack_response({ 'message' => '500 Internal Server Error' }.to_json, 500)
2014-09-02 18:07:02 +05:30
end
format :json
content_type :txt, "text/plain"
helpers APIHelpers
mount Groups
2015-04-26 12:48:37 +05:30
mount GroupMembers
2014-09-02 18:07:02 +05:30
mount Users
mount Projects
mount Repositories
mount Issues
mount Milestones
mount Session
mount MergeRequests
mount Notes
mount Internal
mount SystemHooks
mount ProjectSnippets
mount ProjectMembers
mount DeployKeys
mount ProjectHooks
mount Services
mount Files
mount Commits
mount Namespaces
mount Branches
mount Labels
2015-09-11 14:41:01 +05:30
mount Settings
2014-09-02 18:07:02 +05:30
end
end