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