forgeplus/app/interactors/gitea/repository_interactor.rb

36 lines
664 B
Ruby

class Gitea::RepositoryInteractor
attr_reader :error
# params: token and repository
def self.call(token, repository)
interactor = new(token, repository)
interactor.run
interactor
end
def initialize(token, repository)
@token = token
@repository = repository
end
def success?
@error.nil?
end
def run
Gitea::RepositoryForm.new({name: repository&.name}).validate!
Gitea::Repository::CreateService.new(token, repository).call
rescue Exception => exception
puts exception.message
fail!(exception.message)
end
private
attr_reader :token, :repository
def fail!(error)
@error = error
end
end