forked from Gitlink/forgeplus
44 lines
898 B
Ruby
44 lines
898 B
Ruby
class Gitea::Organization::CreateService < Gitea::ClientService
|
|
attr_reader :token, :org
|
|
|
|
def initialize(token, org)
|
|
@token = token
|
|
@org = org
|
|
end
|
|
|
|
def call
|
|
response = post(url, request_params)
|
|
render_status(response)
|
|
end
|
|
|
|
private
|
|
def request_params
|
|
create_params = {
|
|
username: 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: create_params)
|
|
end
|
|
|
|
def visibility(visibility)
|
|
case visibility
|
|
when "common"
|
|
"public"
|
|
when "limited"
|
|
"limited"
|
|
when "privacy"
|
|
"private"
|
|
else
|
|
"public"
|
|
end
|
|
end
|
|
|
|
def url
|
|
"/orgs".freeze
|
|
end
|
|
end |