39 lines
1.1 KiB
Ruby
39 lines
1.1 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
module Atlassian
|
|
module JiraConnect
|
|
module Serializers
|
|
class EnvironmentEntity < Grape::Entity
|
|
format_with(:string, &:to_s)
|
|
|
|
expose :id, format_with: :string
|
|
expose :display_name, as: :displayName
|
|
expose :type
|
|
|
|
private
|
|
|
|
alias_method :environment, :object
|
|
delegate :project, to: :object
|
|
|
|
def display_name
|
|
"#{project.name}/#{environment.name}"
|
|
end
|
|
|
|
def type
|
|
case environment.name
|
|
when /\A(.*[^a-z0-9])?(staging|stage|stg|preprod|pre-prod|model|internal)([^a-z0-9].*)?\z/i
|
|
'staging'
|
|
when /\A(.*[^a-z0-9])?(prod|production|prd|live)([^a-z0-9].*)?\z/i
|
|
'production'
|
|
when /\A(.*[^a-z0-9])?(test|testing|tests|tst|integration|integ|intg|int|acceptance|accept|acpt|qa|qc|control|quality)([^a-z0-9].*)?\z/i
|
|
'testing'
|
|
when /\A(.*[^a-z0-9])?(dev|review|development)([^a-z0-9].*)?\z/i
|
|
'development'
|
|
else
|
|
'unmapped'
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|