github.com/pf-qiu/concourse/v6@v6.7.3-0.20201207032516-1f455d73275f/atc/api/present/job.go (about)

     1  package present
     2  
     3  import (
     4  	"github.com/pf-qiu/concourse/v6/atc"
     5  	"github.com/pf-qiu/concourse/v6/atc/db"
     6  )
     7  
     8  func Job(
     9  	teamName string,
    10  	job db.Job,
    11  	inputs []atc.JobInput,
    12  	outputs []atc.JobOutput,
    13  	finishedBuild db.Build,
    14  	nextBuild db.Build,
    15  	transitionBuild db.Build,
    16  ) atc.Job {
    17  	var presentedNextBuild, presentedFinishedBuild, presentedTransitionBuild *atc.Build
    18  
    19  	if nextBuild != nil {
    20  		presented := Build(nextBuild)
    21  		presentedNextBuild = &presented
    22  	}
    23  
    24  	if finishedBuild != nil {
    25  		presented := Build(finishedBuild)
    26  		presentedFinishedBuild = &presented
    27  	}
    28  
    29  	if transitionBuild != nil {
    30  		presented := Build(transitionBuild)
    31  		presentedTransitionBuild = &presented
    32  	}
    33  
    34  	sanitizedInputs := []atc.JobInput{}
    35  	for _, input := range inputs {
    36  		sanitizedInputs = append(sanitizedInputs, atc.JobInput{
    37  			Name:     input.Name,
    38  			Resource: input.Resource,
    39  			Passed:   input.Passed,
    40  			Trigger:  input.Trigger,
    41  		})
    42  	}
    43  
    44  	sanitizedOutputs := []atc.JobOutput{}
    45  	for _, output := range outputs {
    46  		sanitizedOutputs = append(sanitizedOutputs, atc.JobOutput{
    47  			Name:     output.Name,
    48  			Resource: output.Resource,
    49  		})
    50  	}
    51  
    52  	return atc.Job{
    53  		ID: job.ID(),
    54  
    55  		Name:                 job.Name(),
    56  		PipelineID:           job.PipelineID(),
    57  		PipelineName:         job.PipelineName(),
    58  		PipelineInstanceVars: job.PipelineInstanceVars(),
    59  		TeamName:             teamName,
    60  		DisableManualTrigger: job.DisableManualTrigger(),
    61  		Paused:               job.Paused(),
    62  		FirstLoggedBuildID:   job.FirstLoggedBuildID(),
    63  		FinishedBuild:        presentedFinishedBuild,
    64  		NextBuild:            presentedNextBuild,
    65  		TransitionBuild:      presentedTransitionBuild,
    66  		HasNewInputs:         job.HasNewInputs(),
    67  
    68  		Inputs:  sanitizedInputs,
    69  		Outputs: sanitizedOutputs,
    70  
    71  		Groups: job.Tags(),
    72  	}
    73  }