41 lines
		
	
	
		
			822 B
		
	
	
	
		
			Ruby
		
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			822 B
		
	
	
	
		
			Ruby
		
	
	
	
class Gitea::Hooks::CreateService < Gitea::ClientService
 | 
						|
  attr_reader :token, :owner, :repo, :body
 | 
						|
 | 
						|
  # body params:
 | 
						|
    # {
 | 
						|
    #   "active": false,
 | 
						|
    #   "branch_filter": "string",
 | 
						|
    #   "config": {
 | 
						|
    #     "content_type": "string",
 | 
						|
    #     "url": "string"
 | 
						|
    #   },
 | 
						|
    #   "events": [
 | 
						|
    #     "create"
 | 
						|
    #   ],
 | 
						|
    #   "type": "gitea"
 | 
						|
    # }
 | 
						|
  # eg:
 | 
						|
  #  Gitea::Hooks::CreateService.call(user.gitea_token, user.login, repo.identifier, body)
 | 
						|
  def initialize(token, owner, repo, body)
 | 
						|
    @token = token
 | 
						|
    @owner = owner
 | 
						|
    @repo  = repo
 | 
						|
    @body  = body
 | 
						|
  end
 | 
						|
 | 
						|
  def call
 | 
						|
    response = post(url, params, true)
 | 
						|
    render_201_response(response)
 | 
						|
  end
 | 
						|
 | 
						|
  private
 | 
						|
  def params
 | 
						|
    Hash.new.merge(token: token, data: body).compact
 | 
						|
  end
 | 
						|
 | 
						|
  def url
 | 
						|
    "/repos/#{owner}/#{repo}/hooks".freeze
 | 
						|
  end
 | 
						|
 | 
						|
end
 |