diff options
Diffstat (limited to 'app/serializers/jira_connect/app_data_serializer.rb')
-rw-r--r-- | app/serializers/jira_connect/app_data_serializer.rb | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/app/serializers/jira_connect/app_data_serializer.rb b/app/serializers/jira_connect/app_data_serializer.rb new file mode 100644 index 00000000000..994ff19f96e --- /dev/null +++ b/app/serializers/jira_connect/app_data_serializer.rb @@ -0,0 +1,28 @@ +# frozen_string_literal: true + +class JiraConnect::AppDataSerializer + include Gitlab::Routing + include ::API::Helpers::RelatedResourcesHelpers + + def initialize(subscriptions, signed_in) + @subscriptions = subscriptions + @signed_in = signed_in + end + + def as_json + skip_groups = @subscriptions.map(&:namespace_id) + + { + groups_path: api_v4_groups_path(params: { min_access_level: Gitlab::Access::MAINTAINER, skip_groups: skip_groups }), + subscriptions: JiraConnect::SubscriptionEntity.represent(@subscriptions).as_json, + subscriptions_path: jira_connect_subscriptions_path, + login_path: signed_in? ? nil : jira_connect_users_path + } + end + + private + + def signed_in? + !!@signed_in + end +end |