Project

General

Profile

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

foreman_pipeline / app / controllers / foreman_pipeline / api / jenkins_users_controller.rb @ d667d1b9

1
module ForemanPipeline
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, :update]
9

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

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

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

    
27
    def update
28
      if jenkins_user_params[:token].empty? || jenkins_user_params[:token].nil?
29
        @jenkins_user.update_attributes!(jenkins_user_params.except(:token).except(:name))      
30
      else
31
        @jenkins_user.update_attributes!(jenkins_user_params.except(:name))      
32
      end
33
      @jenkins_user.save!
34

    
35
      respond_for_show(:resource => @jenkins_user)
36
    end
37

    
38
    def create
39
      @jenkins_user = JenkinsUser.new(jenkins_user_params)
40
      @jenkins_user.organization = @organization
41
      @jenkins_user.save!
42

    
43
      respond_for_show(:resource => @jenkins_user)
44
    end
45

    
46
    def destroy
47
      @jenkins_user.destroy
48
      respond_for_show(:resource => @jenkins_user)
49
    end
50

    
51

    
52
    protected
53

    
54
    def find_jenkins_user
55
      @jenkins_user = JenkinsUser.find_by_id(params[:id])
56
      fail ::Katello::HttpErrors::NotFound, "Could not find Jenkins User with id #{params[:id]}" if @jenkins_user.nil?
57
      @jenkins_user 
58
    end
59

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