|
- class Gitea::Organization::Team::CreateService < Gitea::ClientService
- attr_reader :token, :org, :team
-
- def initialize(token, org, team)
- @token = token
- @org = org
- @team = team
- end
-
- def call
- response = post(url, request_params)
- render_status(response)
- end
-
- private
- def request_params
- create_params = {
- name: team.name,
- description: team.description,
- permission: permission(team.authorize),
- includes_all_repositories: team.includes_all_project,
- can_create_org_repo: team.can_create_org_project,
- units: unit_arrays
- }
- Hash.new.merge(token: token, data: create_params)
- end
-
- def permission(authorize)
- case authorize
- when "read"
- "read"
- when "write"
- "write"
- when "admin"
- "admin"
- when "owner"
- "owner"
- else
- "none"
- end
- end
-
- def unit_arrays
- team.team_units.pluck(:unit_type).collect{|t|"repo.#{t}"}
- end
-
- def url
- "/orgs/#{org.login}/teams".freeze
- end
- end
|