harness-drone/store/template/scan.go

61 lines
1.4 KiB
Go

// Copyright 2019 Drone.IO Inc. All rights reserved.
// Use of this source code is governed by the Drone Non-Commercial License
// that can be found in the LICENSE file.
// +build !oss
package template
import (
"database/sql"
"github.com/drone/drone/core"
"github.com/drone/drone/store/shared/db"
)
// helper function converts the Template structure to a set
// of named query parameters.
func toParams(template *core.Template) (map[string]interface{}, error) {
return map[string]interface{}{
"template_id": template.Id,
"template_name": template.Name,
"template_namespace": template.Namespace,
"template_data": template.Data,
"template_created": template.Created,
"template_updated": template.Updated,
}, nil
}
// helper function scans the sql.Row and copies the column
// values to the destination object.
func scanRow(scanner db.Scanner, dst *core.Template) error {
err := scanner.Scan(
&dst.Id,
&dst.Name,
&dst.Namespace,
&dst.Data,
&dst.Created,
&dst.Updated,
)
if err != nil {
return err
}
return nil
}
// helper function scans the sql.Row and copies the column
// values to the destination object.
func scanRows(rows *sql.Rows) ([]*core.Template, error) {
defer rows.Close()
template := []*core.Template{}
for rows.Next() {
tem := new(core.Template)
err := scanRow(rows, tem)
if err != nil {
return nil, err
}
template = append(template, tem)
}
return template, nil
}