Initial cloud-services repo - gateway service + pkg modules
This commit is contained in:
78
pkg/db/queries/ecu_dtc.go
Normal file
78
pkg/db/queries/ecu_dtc.go
Normal file
@@ -0,0 +1,78 @@
|
||||
package queries
|
||||
|
||||
import (
|
||||
"time"
|
||||
"fiskerinc.com/modules/common"
|
||||
|
||||
"github.com/go-pg/pg/v10/orm"
|
||||
"github.com/pkg/errors"
|
||||
)
|
||||
|
||||
type ECUInterface interface {
|
||||
Insert(dtc *[]common.DTC_ECU) (orm.Result, error)
|
||||
UpdateTimestamp(dtc *common.DTC_ECU) error
|
||||
Select(dtcecu common.DTC_ECUQuery, paging *PageQueryOptions) ([]common.DTC_ECU, error)
|
||||
Count(filter common.DTC_ECUQuery) (int, error)
|
||||
}
|
||||
|
||||
type ECU struct {
|
||||
QueryBase
|
||||
}
|
||||
|
||||
func (c *ECU) Insert(ecuDtc *[]common.DTC_ECU) (orm.Result, error) {
|
||||
if len(*ecuDtc) > 0 {
|
||||
return c.insert(ecuDtc)
|
||||
}
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func (c *ECU) UpdateTimestamp(dtc *common.DTC_ECU) error {
|
||||
_, err := c.GetDBConn().Model(dtc).
|
||||
Where("vin = ?vin AND ecu = ?ecu AND trouble_code = ?trouble_code").
|
||||
Set("updated_at = ?", time.Now()).
|
||||
Update()
|
||||
return errors.WithStack(err)
|
||||
}
|
||||
|
||||
func (c *ECU) Select(filter common.DTC_ECUQuery, paging *PageQueryOptions) ([]common.DTC_ECU, error) {
|
||||
|
||||
dtcEcu := []common.DTC_ECU{}
|
||||
query := c.GetDBConn().Model(&dtcEcu)
|
||||
|
||||
c.applyFilters(query, filter)
|
||||
c.pageQuery(query, paging)
|
||||
err := query.Select()
|
||||
if err != nil {
|
||||
return nil, errors.WithStack(err)
|
||||
}
|
||||
|
||||
return dtcEcu, nil
|
||||
}
|
||||
|
||||
func (c *ECU) applyFilters(query *orm.Query, filter common.DTC_ECUQuery) {
|
||||
|
||||
query.Where("vin = ?", filter.VIN)
|
||||
|
||||
if filter.ECU != "" {
|
||||
query.Where("ecu = ?", filter.ECU)
|
||||
}
|
||||
|
||||
if filter.TroubleCode != 0 {
|
||||
query.Where("trouble_code = ?", filter.TroubleCode)
|
||||
}
|
||||
|
||||
if filter.StartTime != nil {
|
||||
query.Where("epoch_usec >= ?", filter.StartTime.Unix()*1000000)
|
||||
}
|
||||
|
||||
if filter.EndTime != nil {
|
||||
query.Where("epoch_usec <= ?", filter.EndTime.Unix()*1000000)
|
||||
}
|
||||
}
|
||||
|
||||
func (c *ECU) Count(filter common.DTC_ECUQuery) (int, error) {
|
||||
ecu_dtc := common.DTC_ECU{}
|
||||
query := c.GetDBConn().Model(&ecu_dtc)
|
||||
c.applyFilters(query, filter)
|
||||
return c.countWithStack(query.Count())
|
||||
}
|
||||
Reference in New Issue
Block a user