@@ -51,6 +51,64 @@ func createSchema(db database.Database) (graphql.Schema, error) {
|
||||
},
|
||||
})
|
||||
|
||||
runType := graphql.NewObject(graphql.ObjectConfig{
|
||||
Name: "Run",
|
||||
Description: "A pipeline run",
|
||||
Fields: graphql.Fields{
|
||||
"id": &graphql.Field{
|
||||
Type: graphql.NewNonNull(graphql.String),
|
||||
Description: "The id of the run.",
|
||||
Resolve: func(p graphql.ResolveParams) (interface{}, error) {
|
||||
if run, ok := p.Source.(database.Run); ok {
|
||||
return run.Id, nil
|
||||
}
|
||||
return nil, nil
|
||||
},
|
||||
},
|
||||
"progress": &graphql.Field{
|
||||
Type: graphql.Boolean,
|
||||
Description: "The progress status of the run.",
|
||||
Resolve: func(p graphql.ResolveParams) (interface{}, error) {
|
||||
if run, ok := p.Source.(database.Run); ok {
|
||||
return run.InProgress, nil
|
||||
}
|
||||
return nil, nil
|
||||
},
|
||||
},
|
||||
"result": &graphql.Field{
|
||||
// TODO: handle bigint properly here
|
||||
Type: graphql.Float,
|
||||
Description: "The result of the run.",
|
||||
Resolve: func(p graphql.ResolveParams) (interface{}, error) {
|
||||
if run, ok := p.Source.(database.Run); ok {
|
||||
return run.Result, nil
|
||||
}
|
||||
return nil, nil
|
||||
},
|
||||
},
|
||||
"stdout": &graphql.Field{
|
||||
Type: graphql.String,
|
||||
Description: "The stdout used to validate the run.",
|
||||
Resolve: func(p graphql.ResolveParams) (interface{}, error) {
|
||||
if run, ok := p.Source.(database.Run); ok {
|
||||
return run.Stdout, nil
|
||||
}
|
||||
return nil, nil
|
||||
},
|
||||
},
|
||||
"stderr": &graphql.Field{
|
||||
Type: graphql.String,
|
||||
Description: "The stderr used to validate the run.",
|
||||
Resolve: func(p graphql.ResolveParams) (interface{}, error) {
|
||||
if run, ok := p.Source.(database.Run); ok {
|
||||
return run.Stderr, nil
|
||||
}
|
||||
return nil, nil
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
pipelineType := graphql.NewObject(graphql.ObjectConfig{
|
||||
Name: "Pipeline",
|
||||
Description: "A pipeline for running ci jobs",
|
||||
@@ -105,6 +163,16 @@ func createSchema(db database.Database) (graphql.Schema, error) {
|
||||
return []database.Webhook{}, nil
|
||||
},
|
||||
},
|
||||
"runs": &graphql.Field{
|
||||
Type: graphql.NewNonNull(graphql.NewList(graphql.NewNonNull(runType))),
|
||||
Description: "The list of runs for the pipeline.",
|
||||
Resolve: func(p graphql.ResolveParams) (interface{}, error) {
|
||||
if pipeline, ok := p.Source.(database.Pipeline); ok {
|
||||
return db.GetRunsForPipeline(pipeline.Id)
|
||||
}
|
||||
return []database.Webhook{}, nil
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
@@ -127,6 +195,13 @@ func createSchema(db database.Database) (graphql.Schema, error) {
|
||||
return db.GetPipelineById(id)
|
||||
},
|
||||
},
|
||||
"Pipelines": &graphql.Field{
|
||||
Type: graphql.NewNonNull(graphql.NewList(pipelineType)),
|
||||
Args: graphql.FieldConfigArgument{},
|
||||
Resolve: func(p graphql.ResolveParams) (interface{}, error) {
|
||||
return db.GetPipelines()
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
|
||||
Reference in New Issue
Block a user