skierkowski/terraform-enterprise-client

View on GitHub
lib/terraform_enterprise/api/resource_requests/variables.rb

Summary

Maintainability
A
0 mins
Test Coverage
require 'terraform_enterprise/api/resource_request'

module TerraformEnterprise
  module API
    # Variables resource request
    class Variables < TerraformEnterprise::API::ResourceRequest
      def list(params = {})
        filter = {}
        filter[:workspace] = { name: params[:workspace] } if params[:workspace]
        filter[:organization] = { name: params[:organization] } if params[:organization]
        @request.get(:vars, filter: filter)
      end

      def get(params = {})
        @request.get(:vars, params[:id])
      end

      def create(params = {})
        org       = params.delete(:organization)
        workspace = params.delete(:workspace)
        data      = {
          attributes: params,
          type: 'vars'
        }
        filter = {
          organization: { name: org },
          workspace: { name: workspace }
        }

        @request.post(:vars, data: data, filter: filter)
      end

      def update(params = {})
        id = params.delete(:id)
        data = {
          attributes: params,
          type: 'vars'
        }

        @request.patch(:vars, id, data: data)
      end

      def delete(params = {})
        @request.delete(:vars, params[:id])
      end
    end
  end
end