Project

General

Profile

Download (1.94 KB) Statistics
| Branch: | Tag: | Revision:

foreman_pipeline / app / controllers / integration / api / jenkins_users_controller.rb @ 1cd46bac

1
module Integration
2
  class Api::JenkinsUsersController < Katello::Api::V2::ApiController
3
    respond_to :json
4

    
5
    include Api::Rendering
6

    
7
    before_filter :find_organization, :only => [:create, :index]
8
    before_filter :find_jenkins_user, :only => [:show, :destroy]
9
    before_filter :find_job, :only => [:create]
10

    
11
    def index
12
       ids = JenkinsUser.readable
13
            .where(:organization_id => @organization.id, :jenkins_instance_id => params[:jenkins_instance_id])
14
            .pluck(:id)
15
      filters = [:terms => {:id => ids}]       
16

    
17
      options = {
18
         :filters => filters,
19
         :load_records? => true
20
      }
21
      respond_for_index(:collection => item_search(JenkinsUser, params, options))
22
    end
23

    
24
    # def show
25
    #   respond_for_show(:resource => @jenkins_user)
26
    # end
27

    
28
    def create
29
      @jenkins_user = JenkinsUser.new(jenkins_user_params)
30
      @jenkins_user.owner = ::User.current
31
      fail ::Katello::HttpErrors::Conflict, "Could not create Jenkins User:
32
                                             No Jenkins Instance set for Job " if @job.jenkins_instance.nil?
33
      @jenkins_user.jenkins_instance = @job.jenkins_instance
34
      @jenkins_user.organization = @organization
35
      binding.pry
36
      @jenkins_user.save!
37

    
38
      respond_for_show(:resource => @jenkins_user)
39
    end
40

    
41
    def destroy
42
      @jenkins_user.destroy
43
      respond_for_show(:resource => @jenkins_user)
44
    end
45

    
46

    
47
    protected
48

    
49
    def find_jenkins_user
50
      @jenkins_user = JenkinsUser.find_by_id(params[:id])
51
      fail ::Katello::HttpErrors::NotFound, "Could not find Jenkins User with id #{params[:id]}" if @jenkins_user.nil?
52
      @jenkins_user 
53
    end
54

    
55
    def find_job
56
      @job = Job.find_by_id(params[:job_id])
57
      fail ::Katello::HttpErrors::NotFound, "Could not find job with id #{params[:job_id]}" if @job.nil?
58
      @job 
59
    end
60

    
61
    def jenkins_user_params
62
      params.require(:jenkins_user).permit(:name, :token, :job_id)
63
    end
64
    
65
  end
66
end