create_service.rb 670 字节
Newer Older
1 2
module Clusters
  class CreateService < BaseService
S
Shinya Maeda 已提交
3
    attr_reader :access_token
4

S
Shinya Maeda 已提交
5 6
    def execute(access_token)
      @access_token = access_token
7

S
Shinya Maeda 已提交
8
      create_cluster.tap do |cluster|
9
        ClusterProvisionWorker.perform_async(cluster.id) if cluster.persisted?
10
      end
11
    end
S
Shinya Maeda 已提交
12 13 14 15

    private

    def create_cluster
16
      Clusters::Cluster.create(cluster_params)
S
Shinya Maeda 已提交
17 18 19 20 21
    end

    def cluster_params
      return @cluster_params if defined?(@cluster_params)

22 23
      params[:provider_gcp_attributes].try do |provider|
        provider[:access_token] = access_token
24
      end
S
Shinya Maeda 已提交
25

26
      @cluster_params = params.merge(user: current_user, projects: [project])
S
Shinya Maeda 已提交
27
    end
28 29
  end
end