Sha256: 8ba9ef1aabb7101287fb664ab52eab88d56e79197f55608442227df2b957c31c

Contents?: true

Size: 1.23 KB

Versions: 6

Compression:

Stored size: 1.23 KB

Contents

module Shipit
  class DestroyStackJob < BackgroundJob
    queue_as :default

    # stack
    # +-- api_clients
    # +-- commits
    # |   +-- commit_deployments
    # |   |   +-- statuses
    # |   +-- statuses
    # +-- github_hooks
    # +-- hooks
    # +-- pull_requests
    # +-- tasks
    #     +-- chunks

    def perform(stack)
      Shipit::ApiClient.where(stack_id: stack.id).delete_all
      commits_ids = Shipit::Commit.where(stack_id: stack.id).pluck(:id)
      commit_deployments_ids = Shipit::CommitDeployment.where(commit_id: commits_ids).pluck(:id)
      Shipit::CommitDeploymentStatus.where(commit_deployment_id: commit_deployments_ids).delete_all
      Shipit::CommitDeployment.where(id: commit_deployments_ids).delete_all
      Shipit::Status.where(commit_id: commits_ids).delete_all
      Shipit::Commit.where(id: commits_ids).delete_all
      Shipit::GithubHook.where(stack_id: stack.id).destroy_all
      Shipit::Hook.where(stack_id: stack.id).delete_all
      Shipit::PullRequest.where(stack_id: stack.id).delete_all
      tasks_ids = Shipit::Task.where(stack_id: stack.id).pluck(:id)
      Shipit::OutputChunk.where(task_id: tasks_ids).delete_all
      Shipit::Task.where(id: tasks_ids).delete_all
      stack.destroy!
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
shipit-engine-0.20.1 app/jobs/shipit/destroy_stack_job.rb
shipit-engine-0.20.0 app/jobs/shipit/destroy_stack_job.rb
shipit-engine-0.19.0 app/jobs/shipit/destroy_stack_job.rb
shipit-engine-0.18.1 app/jobs/shipit/destroy_stack_job.rb
shipit-engine-0.18.0 app/jobs/shipit/destroy_stack_job.rb
shipit-engine-0.17.0 app/jobs/shipit/destroy_stack_job.rb