35 lines
823 B
Ruby
35 lines
823 B
Ruby
# frozen_string_literal: true
|
|
|
|
module Releases
|
|
module Links
|
|
REASON_BAD_REQUEST = :bad_request
|
|
REASON_NOT_FOUND = :not_found
|
|
REASON_FORBIDDEN = :forbidden
|
|
|
|
class BaseService
|
|
attr_accessor :release, :current_user, :params
|
|
|
|
def initialize(release, current_user = nil, params = {})
|
|
@release = release
|
|
@current_user = current_user
|
|
@params = params.dup
|
|
end
|
|
|
|
private
|
|
|
|
def allowed_params
|
|
@allowed_params ||= params.slice(:name, :url, :link_type).tap do |hash|
|
|
hash[:filepath] = filepath if provided_filepath?
|
|
end
|
|
end
|
|
|
|
def provided_filepath?
|
|
params.key?(:direct_asset_path) || params.key?(:filepath)
|
|
end
|
|
|
|
def filepath
|
|
params[:direct_asset_path] || params[:filepath]
|
|
end
|
|
end
|
|
end
|
|
end
|