blob: 372fbfdc183357c405fae542f2761d7feeb48397 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
# frozen_string_literal: true
module Projects
module ErrorTracking
class ProjectsController < Projects::ApplicationController
respond_to :json
before_action :authorize_admin_sentry!
feature_category :error_tracking
urgency :low
def index
service = ::ErrorTracking::ListProjectsService.new(
project,
current_user,
list_projects_params
)
result = service.execute
if result[:status] == :success
render json: { projects: serialize_projects(result[:projects]) }
else
render(
status: result[:http_status] || :bad_request,
json: { message: result[:message] }
)
end
end
private
def list_projects_params
{ api_host: params[:api_host], token: params[:token] }
end
def serialize_projects(projects)
::ErrorTracking::ProjectSerializer
.new(project: project, user: current_user)
.represent(projects)
end
end
end
end
|