class Gitea::Organization::UpdateService < Gitea::ClientService attr_reader :token, :login, :org def initialize(token, login, org) @token = token @login = login @org = org end def call response = patch(url, request_params) render_status(response) end private def request_params update_params = { name: org.login, description: org.description, location: org.location, repo_admin_change_team_access: org.repo_admin_change_team_access, visibility: visibility(org.visibility), website: org.website, max_repo_creation: org.max_repo_creation } Hash.new.merge(token: token, data: update_params) end def visibility(visibility) case visibility when "common" "public" when "limited" "limited" when "privacy" "private" else "public" end end def url "/orgs/#{login}".freeze end end