diff --git a/pkg/repository/sqlite3/sqlite.go b/pkg/repository/sqlite3/sqlite.go index 2704b24..7f11f6e 100644 --- a/pkg/repository/sqlite3/sqlite.go +++ b/pkg/repository/sqlite3/sqlite.go @@ -17,55 +17,99 @@ import ( "github.com/johejo/golang-migrate-extra/source/iofs" ) -//go:embed ddl/*.sql -var sqlite3DDLAssets embed.FS +var ( + //go:embed ddl/*.sql + sqlite3DDLAssets embed.FS -//go:embed dml/*.sql -var sqlite3DMLAssets embed.FS + //go:embed dml/deleteDeviceByID.sql + deleteDeviceByIDSQL string -const ( - sqlite3DDLAssetPath = "ddl" - sqlite3DMLAssetPath = "dml" + //go:embed dml/deleteDeviceByName.sql + deleteDeviceByNameSQL string - deleteDeviceByIDSQLFile = sqlite3DMLAssetPath + "/deleteDeviceByID.sql" - deleteDeviceByNameSQLFile = sqlite3DMLAssetPath + "/deleteDeviceByName.sql" + //go:embed dml/deleteSensorByID.sql + deleteSensorByIDSQL string - deleteSensorByIDSQLFile = sqlite3DMLAssetPath + "/deleteSensorByID.sql" - deleteSensorByNameSQLFile = sqlite3DMLAssetPath + "/deleteSensorByName.sql" + //go:embed dml/deleteSensorByName.sql + deleteSensorByNameSQL string - insertDeviceSQLFile = sqlite3DMLAssetPath + "/insertDevice.sql" - insertSensorSQLFile = sqlite3DMLAssetPath + "/insertSensor.sql" - insertHumiditySQLFile = sqlite3DMLAssetPath + "/insertHumidity.sql" - insertPressureSQLFile = sqlite3DMLAssetPath + "/insertPressure.sql" - insertTemperatureSQLFile = sqlite3DMLAssetPath + "/insertTemperature.sql" + //go:embed dml/insertDevice.sql + insertDeviceSQL string - insertOrUpdateDeviceSQLFile = sqlite3DMLAssetPath + "/insertOrUpdateDevice.sql" - insertOrUpdateSensorSQLFile = sqlite3DMLAssetPath + "/insertOrUpdateSensor.sql" - insertOrUpdateHumiditySQLFile = sqlite3DMLAssetPath + "/insertOrUpdateHumidity.sql" - insertOrUpdatePressureSQLFile = sqlite3DMLAssetPath + "/insertOrUpdatePressure.sql" - insertOrUpdateTemperatureSQLFile = sqlite3DMLAssetPath + "/insertOrUpdateTemperature.sql" + //go:embed dml/insertHumidity.sql + insertHumiditySQL string - selectDeviceByIDSQLFile = sqlite3DMLAssetPath + "/selectDeviceByID.sql" - selectDeviceByNameSQLFile = sqlite3DMLAssetPath + "/selectDeviceByName.sql" - selectDevicesSQLFile = sqlite3DMLAssetPath + "/selectDevices.sql" + //go:embed dml/insertOrUpdateDevice.sql + insertOrUpdateDeviceSQL string - selectSensorByIDSQLFile = sqlite3DMLAssetPath + "/selectSensorByID.sql" - selectSensorsSQLFile = sqlite3DMLAssetPath + "/selectSensors.sql" - selectSensorsByDeviceIDSQLFile = sqlite3DMLAssetPath + "/selectSensorsByDeviceID.sql" - selectSensorsByModelSQLFile = sqlite3DMLAssetPath + "/selectSensorsByModel.sql" - selectSensorsByNameSQLFile = sqlite3DMLAssetPath + "/selectSensorsByName.sql" + //go:embed dml/insertOrUpdateHumidity.sql + insertOrUpdateHumiditySQL string - selectHumidityByIDSQLFile = sqlite3DMLAssetPath + "/selectHumidityByID.sql" - selectHumiditiesSQLFile = sqlite3DMLAssetPath + "/selectHumidities.sql" + //go:embed dml/insertOrUpdatePressure.sql + insertOrUpdatePressureSQL string - selectPressureByIDSQLFile = sqlite3DMLAssetPath + "/selectPressureByID.sql" - selectPressuresSQLFile = sqlite3DMLAssetPath + "/selectPressures.sql" + //go:embed dml/insertOrUpdateSensor.sql + insertOrUpdateSensorSQL string - selectTemperatureByIDSQLFile = sqlite3DMLAssetPath + "/selectTemperatureByID.sql" - selectTemperaturesSQLFile = sqlite3DMLAssetPath + "/selectTemperatures.sql" + //go:embed dml/insertOrUpdateTemperature.sql + insertOrUpdateTemperatureSQL string - updateDeviceSQLFile = sqlite3DMLAssetPath + "/updateDevice.sql" - updateSensorSQLFile = sqlite3DMLAssetPath + "/updateSensor.sql" + //go:embed dml/insertPressure.sql + insertPressureSQL string + + //go:embed dml/insertSensor.sql + insertSensorSQL string + + //go:embed dml/insertTemperature.sql + insertTemperatureSQL string + + //go:embed dml/selectDeviceByID.sql + selectDeviceByIDSQL string + + //go:embed dml/selectDeviceByName.sql + selectDeviceByNameSQL string + + //go:embed dml/selectDevices.sql + selectDevicesSQL string + + //go:embed dml/selectHumidities.sql + selectHumiditiesSQL string + + //go:embed dml/selectHumidityByID.sql + selectHumidityByIDSQL string + + //go:embed dml/selectPressureByID.sql + selectPressureByIDSQL string + + //go:embed dml/selectPressures.sql + selectPressuresSQL string + + //go:embed dml/selectSensorByID.sql + selectSensorByIDSQL string + + //go:embed dml/selectSensors.sql + selectSensorsSQL string + + //go:embed dml/selectSensorsByDeviceID.sql + selectSensorsByDeviceIDSQL string + + //go:embed dml/selectSensorsByModel.sql + selectSensorsByModelSQL string + + //go:embed dml/selectSensorsByName.sql + selectSensorsByNameSQL string + + //go:embed dml/selectTemperatureByID.sql + selectTemperatureByIDSQL string + + //go:embed dml/selectTemperatures.sql + selectTemperaturesSQL string + + //go:embed dml/updateDevice.sql + updateDeviceSQL string + + //go:embed dml/updateSensor.sql + updateSensorSQL string ) type Opts struct { @@ -135,18 +179,13 @@ func (sqlite *SQLite) AddDevices(ctx context.Context, devices ...*types.Device) sqlite.mutex.Lock() defer sqlite.mutex.Unlock() - f, err := sqlite3DMLAssets.ReadFile(insertDeviceSQLFile) - if err != nil { - return fmt.Errorf("Failed to read file %v: %w", insertDeviceSQLFile, err) - } - tx, err := sqlite.dbo.BeginTx(ctx, &sql.TxOptions{ReadOnly: false}) if err != nil { return fmt.Errorf("Failed to begin new transaction: %v", err) } defer tx.Rollback() - stmt, err := tx.Prepare(string(f)) + stmt, err := tx.Prepare(insertDeviceSQL) if err != nil { return fmt.Errorf("Failed to prepare statement: %v", err) } @@ -167,18 +206,13 @@ func (sqlite *SQLite) AddOrUpdateDevices(ctx context.Context, devices ...*types. sqlite.mutex.Lock() defer sqlite.mutex.Unlock() - f, err := sqlite3DMLAssets.ReadFile(insertOrUpdateDeviceSQLFile) - if err != nil { - return fmt.Errorf("Failed to read file %v: %w", insertOrUpdateDeviceSQLFile, err) - } - tx, err := sqlite.dbo.BeginTx(ctx, &sql.TxOptions{ReadOnly: false}) if err != nil { return fmt.Errorf("Failed to begin new transaction: %v", err) } defer tx.Rollback() - stmt, err := tx.Prepare(string(f)) + stmt, err := tx.Prepare(insertOrUpdateDeviceSQL) if err != nil { return fmt.Errorf("Failed to prepare statement: %v", err) } @@ -215,13 +249,8 @@ func (sqlite *SQLite) AddMeasuredValues(ctx context.Context, measuredValues ...* defer tx.Rollback() // General insert function - insert := func(tx *sql.Tx, queryFile string, measuredValues []*types.MeasuredValue) error { - f, err := sqlite3DMLAssets.ReadFile(queryFile) - if err != nil { - return fmt.Errorf("Failed to read file %v: %w", deleteDeviceByIDSQLFile, err) - } - - stmt, err := tx.Prepare(string(f)) + insert := func(tx *sql.Tx, query string, measuredValues []*types.MeasuredValue) error { + stmt, err := tx.Prepare(query) if err != nil { return fmt.Errorf("Failed to prepare statement: %v", err) } @@ -246,20 +275,20 @@ func (sqlite *SQLite) AddMeasuredValues(ctx context.Context, measuredValues ...* } for measuredValueType, measuredValues := range splittedMeasuredValues { - var queryFile string + var query string switch measuredValueType { case types.Humidity: - queryFile = insertHumiditySQLFile + query = insertHumiditySQL case types.Pressure: - queryFile = insertPressureSQLFile + query = insertPressureSQL case types.Temperature: - queryFile = insertTemperatureSQLFile + query = insertTemperatureSQL default: return fmt.Errorf("Measured value type %v not supported", measuredValueType) } - err := insert(tx, queryFile, measuredValues) + err := insert(tx, query, measuredValues) if err != nil { return err } @@ -289,13 +318,9 @@ func (sqlite *SQLite) AddOrUpdateMeasuredValues(ctx context.Context, measuredVal defer tx.Rollback() // General insert function - insert := func(tx *sql.Tx, queryFile string, measuredValues []*types.MeasuredValue) error { - f, err := sqlite3DMLAssets.ReadFile(queryFile) - if err != nil { - return fmt.Errorf("Failed to read file %v: %w", queryFile, err) - } + insert := func(tx *sql.Tx, query string, measuredValues []*types.MeasuredValue) error { - stmt, err := tx.Prepare(string(f)) + stmt, err := tx.Prepare(query) if err != nil { return fmt.Errorf("Failed to prepare statement: %v", err) } @@ -324,11 +349,11 @@ func (sqlite *SQLite) AddOrUpdateMeasuredValues(ctx context.Context, measuredVal switch measuredValueType { case types.Humidity: - queryFile = insertOrUpdateHumiditySQLFile + queryFile = insertOrUpdateHumiditySQL case types.Pressure: - queryFile = insertOrUpdatePressureSQLFile + queryFile = insertOrUpdatePressureSQL case types.Temperature: - queryFile = insertOrUpdateTemperatureSQLFile + queryFile = insertOrUpdateTemperatureSQL default: return fmt.Errorf("Measured value type %v not supported", measuredValueType) } @@ -347,18 +372,13 @@ func (sqlite *SQLite) AddSensors(ctx context.Context, sensors ...*types.Sensor) sqlite.mutex.Lock() defer sqlite.mutex.Unlock() - f, err := sqlite3DMLAssets.ReadFile(insertSensorSQLFile) - if err != nil { - return fmt.Errorf("Failed to read file %v: %w", insertSensorSQLFile, err) - } - tx, err := sqlite.dbo.BeginTx(ctx, &sql.TxOptions{ReadOnly: false}) if err != nil { return fmt.Errorf("Failed to begin new transaction: %v", err) } defer tx.Rollback() - stmt, err := tx.Prepare(string(f)) + stmt, err := tx.Prepare(insertSensorSQL) if err != nil { return fmt.Errorf("Failed to prepare statement: %v", err) } @@ -393,18 +413,13 @@ func (sqlite *SQLite) AddOrUpdateSensors(ctx context.Context, sensors ...*types. sqlite.mutex.Lock() defer sqlite.mutex.Unlock() - f, err := sqlite3DMLAssets.ReadFile(insertOrUpdateSensorSQLFile) - if err != nil { - return fmt.Errorf("Failed to read file %v: %w", insertOrUpdateSensorSQLFile, err) - } - tx, err := sqlite.dbo.BeginTx(ctx, &sql.TxOptions{ReadOnly: false}) if err != nil { return fmt.Errorf("Failed to begin new transaction: %v", err) } defer tx.Rollback() - stmt, err := tx.Prepare(string(f)) + stmt, err := tx.Prepare(insertOrUpdateSensorSQL) if err != nil { return fmt.Errorf("Failed to prepare statement: %v", err) } @@ -447,7 +462,7 @@ func (sqlite *SQLite) Migrate(ctx context.Context) error { sqlite.mutex.Lock() defer sqlite.mutex.Unlock() - sourceDriver, err := iofs.New(sqlite3DDLAssets, sqlite3DDLAssetPath) + sourceDriver, err := iofs.New(sqlite3DDLAssets, "ddl") if err != nil { return err } @@ -471,18 +486,13 @@ func (sqlite *SQLite) GetDeviceByID(ctx context.Context, id string) (*types.Devi sqlite.mutex.Lock() defer sqlite.mutex.Unlock() - f, err := sqlite3DMLAssets.ReadFile(selectDeviceByIDSQLFile) - if err != nil { - return nil, fmt.Errorf("Failed to read file %v: %w", selectDeviceByIDSQLFile, err) - } - tx, err := sqlite.dbo.BeginTx(ctx, &sql.TxOptions{ReadOnly: true}) if err != nil { return nil, fmt.Errorf("Failed to begin new transaction: %v", err) } defer tx.Rollback() - devices, err := sqlite.selectDevices(tx, string(f), id) + devices, err := sqlite.selectDevices(tx, selectDeviceByIDSQL, id) if err != nil { return nil, err } @@ -504,18 +514,13 @@ func (sqlite *SQLite) GetDeviceByName(ctx context.Context, name string) (*types. sqlite.mutex.Lock() defer sqlite.mutex.Unlock() - f, err := sqlite3DMLAssets.ReadFile(selectDeviceByNameSQLFile) - if err != nil { - return nil, fmt.Errorf("Failed to read file %v: %w", selectDeviceByNameSQLFile, err) - } - tx, err := sqlite.dbo.BeginTx(ctx, &sql.TxOptions{ReadOnly: true}) if err != nil { return nil, fmt.Errorf("Failed to begin new transaction: %v", err) } defer tx.Rollback() - devices, err := sqlite.selectDevices(tx, string(f), name) + devices, err := sqlite.selectDevices(tx, selectDeviceByNameSQL, name) if err != nil { return nil, err } @@ -537,18 +542,13 @@ func (sqlite *SQLite) GetDevices(ctx context.Context) ([]*types.Device, error) { sqlite.mutex.Lock() defer sqlite.mutex.Unlock() - f, err := sqlite3DMLAssets.ReadFile(selectDevicesSQLFile) - if err != nil { - return nil, fmt.Errorf("Failed to read file %v: %w", selectDevicesSQLFile, err) - } - tx, err := sqlite.dbo.BeginTx(ctx, &sql.TxOptions{ReadOnly: true}) if err != nil { return nil, fmt.Errorf("Failed to begin new transaction: %v", err) } defer tx.Rollback() - devices, err := sqlite.selectDevices(tx, string(f)) + devices, err := sqlite.selectDevices(tx, selectDevicesSQL) if err != nil { return nil, err } @@ -598,18 +598,13 @@ func (sqlite *SQLite) GetHumidityByID(ctx context.Context, id string) (*types.Me sqlite.mutex.Lock() defer sqlite.mutex.Unlock() - f, err := sqlite3DMLAssets.ReadFile(selectHumidityByIDSQLFile) - if err != nil { - return nil, fmt.Errorf("Failed to read file %v: %w", selectHumidityByIDSQLFile, err) - } - tx, err := sqlite.dbo.BeginTx(ctx, &sql.TxOptions{ReadOnly: true}) if err != nil { return nil, err } defer tx.Rollback() - measuredValues, err := sqlite.selectMeasuredValue(tx, string(f), id) + measuredValues, err := sqlite.selectMeasuredValue(tx, selectHumidityByIDSQL, id) if err != nil { return nil, err } @@ -635,18 +630,13 @@ func (sqlite *SQLite) GetHumidities(ctx context.Context) ([]*types.MeasuredValue sqlite.mutex.Lock() defer sqlite.mutex.Unlock() - f, err := sqlite3DMLAssets.ReadFile(selectHumiditiesSQLFile) - if err != nil { - return nil, fmt.Errorf("Failed to read file %v: %w", selectHumiditiesSQLFile, err) - } - tx, err := sqlite.dbo.BeginTx(ctx, &sql.TxOptions{ReadOnly: true}) if err != nil { return nil, err } defer tx.Rollback() - measuredValues, err := sqlite.selectMeasuredValue(tx, string(f)) + measuredValues, err := sqlite.selectMeasuredValue(tx, selectHumiditiesSQL) if err != nil { return nil, err } @@ -703,18 +693,13 @@ func (sqlite *SQLite) GetPressureByID(ctx context.Context, id string) (*types.Me sqlite.mutex.Lock() defer sqlite.mutex.Unlock() - f, err := sqlite3DMLAssets.ReadFile(selectPressureByIDSQLFile) - if err != nil { - return nil, fmt.Errorf("Failed to read file %v: %w", selectPressureByIDSQLFile, err) - } - tx, err := sqlite.dbo.BeginTx(ctx, &sql.TxOptions{ReadOnly: true}) if err != nil { return nil, err } defer tx.Rollback() - measuredValues, err := sqlite.selectMeasuredValue(tx, string(f), id) + measuredValues, err := sqlite.selectMeasuredValue(tx, selectPressureByIDSQL, id) if err != nil { return nil, err } @@ -740,18 +725,13 @@ func (sqlite *SQLite) GetPressures(ctx context.Context) ([]*types.MeasuredValue, sqlite.mutex.Lock() defer sqlite.mutex.Unlock() - f, err := sqlite3DMLAssets.ReadFile(selectPressuresSQLFile) - if err != nil { - return nil, fmt.Errorf("Failed to read file %v: %w", deleteDeviceByIDSQLFile, err) - } - tx, err := sqlite.dbo.BeginTx(ctx, &sql.TxOptions{ReadOnly: true}) if err != nil { return nil, err } defer tx.Rollback() - measuredValues, err := sqlite.selectMeasuredValue(tx, string(f)) + measuredValues, err := sqlite.selectMeasuredValue(tx, selectPressuresSQL) if err != nil { return nil, err } @@ -773,18 +753,13 @@ func (sqlite *SQLite) GetSensorByID(ctx context.Context, id string) (*types.Sens sqlite.mutex.Lock() defer sqlite.mutex.Unlock() - f, err := sqlite3DMLAssets.ReadFile(selectSensorByIDSQLFile) - if err != nil { - return nil, fmt.Errorf("Failed to read file %v: %w", selectSensorByIDSQLFile, err) - } - tx, err := sqlite.dbo.BeginTx(ctx, &sql.TxOptions{ReadOnly: true}) if err != nil { return nil, fmt.Errorf("Failed to begin new transaction: %v", err) } defer tx.Rollback() - sensors, err := sqlite.selectSensors(tx, string(f), id) + sensors, err := sqlite.selectSensors(tx, selectSensorByIDSQL, id) if err != nil { return nil, err } @@ -806,18 +781,13 @@ func (sqlite *SQLite) GetSensors(ctx context.Context) ([]*types.Sensor, error) { sqlite.mutex.Lock() defer sqlite.mutex.Unlock() - f, err := sqlite3DMLAssets.ReadFile(selectSensorsSQLFile) - if err != nil { - return nil, fmt.Errorf("Failed to read file %v: %w", selectSensorsSQLFile, err) - } - tx, err := sqlite.dbo.BeginTx(ctx, &sql.TxOptions{ReadOnly: true}) if err != nil { return nil, fmt.Errorf("Failed to begin new transaction: %v", err) } defer tx.Rollback() - sensors, err := sqlite.selectSensors(tx, string(f)) + sensors, err := sqlite.selectSensors(tx, selectSensorsSQL) if err != nil { return nil, err } @@ -835,11 +805,6 @@ func (sqlite *SQLite) GetSensorsByDeviceIDs(ctx context.Context, deviceIDs ...st sqlite.mutex.Lock() defer sqlite.mutex.Unlock() - f, err := sqlite3DMLAssets.ReadFile(selectSensorsByDeviceIDSQLFile) - if err != nil { - return nil, fmt.Errorf("Failed to read file %v: %w", selectSensorsByDeviceIDSQLFile, err) - } - tx, err := sqlite.dbo.BeginTx(ctx, &sql.TxOptions{ReadOnly: true}) if err != nil { return nil, fmt.Errorf("Failed to begin new transaction: %v", err) @@ -848,7 +813,7 @@ func (sqlite *SQLite) GetSensorsByDeviceIDs(ctx context.Context, deviceIDs ...st cachedSensors := make([]*types.Sensor, 0) for i := range deviceIDs { - sensors, err := sqlite.selectSensors(tx, string(f), deviceIDs[i]) + sensors, err := sqlite.selectSensors(tx, selectSensorsByDeviceIDSQL, deviceIDs[i]) if err != nil { return nil, err } @@ -869,11 +834,6 @@ func (sqlite *SQLite) GetSensorsByModels(ctx context.Context, sensorModels ...st sqlite.mutex.Lock() defer sqlite.mutex.Unlock() - f, err := sqlite3DMLAssets.ReadFile(selectSensorsByModelSQLFile) - if err != nil { - return nil, fmt.Errorf("Failed to read file %v: %w", selectSensorsByModelSQLFile, err) - } - tx, err := sqlite.dbo.BeginTx(ctx, &sql.TxOptions{ReadOnly: true}) if err != nil { return nil, fmt.Errorf("Failed to begin new transaction: %v", err) @@ -882,7 +842,7 @@ func (sqlite *SQLite) GetSensorsByModels(ctx context.Context, sensorModels ...st cachedSensors := make([]*types.Sensor, 0) for i := range sensorModels { - sensors, err := sqlite.selectSensors(tx, string(f), sensorModels[i]) + sensors, err := sqlite.selectSensors(tx, selectSensorsByModelSQL, sensorModels[i]) if err != nil { return nil, err } @@ -903,11 +863,6 @@ func (sqlite *SQLite) GetSensorsByNames(ctx context.Context, sensorNames ...stri sqlite.mutex.Lock() defer sqlite.mutex.Unlock() - f, err := sqlite3DMLAssets.ReadFile(selectSensorsByNameSQLFile) - if err != nil { - return nil, fmt.Errorf("Failed to read file %v: %w", selectSensorsByNameSQLFile, err) - } - tx, err := sqlite.dbo.BeginTx(ctx, &sql.TxOptions{ReadOnly: true}) if err != nil { return nil, fmt.Errorf("Failed to begin new transaction: %v", err) @@ -916,7 +871,7 @@ func (sqlite *SQLite) GetSensorsByNames(ctx context.Context, sensorNames ...stri cachedSensors := make([]*types.Sensor, 0) for i := range sensorNames { - sensors, err := sqlite.selectSensors(tx, string(f), sensorNames[i]) + sensors, err := sqlite.selectSensors(tx, selectSensorsByNameSQL, sensorNames[i]) if err != nil { return nil, err } @@ -978,18 +933,13 @@ func (sqlite *SQLite) GetTemperatureByID(ctx context.Context, id string) (*types sqlite.mutex.Lock() defer sqlite.mutex.Unlock() - f, err := sqlite3DMLAssets.ReadFile(selectTemperatureByIDSQLFile) - if err != nil { - return nil, fmt.Errorf("Failed to read file %v: %w", selectTemperatureByIDSQLFile, err) - } - tx, err := sqlite.dbo.BeginTx(ctx, &sql.TxOptions{ReadOnly: true}) if err != nil { return nil, err } defer tx.Rollback() - measuredValues, err := sqlite.selectMeasuredValue(tx, string(f), id) + measuredValues, err := sqlite.selectMeasuredValue(tx, selectTemperatureByIDSQL, id) if err != nil { return nil, err } @@ -1015,18 +965,13 @@ func (sqlite *SQLite) GetTemperatures(ctx context.Context) ([]*types.MeasuredVal sqlite.mutex.Lock() defer sqlite.mutex.Unlock() - f, err := sqlite3DMLAssets.ReadFile(selectTemperaturesSQLFile) - if err != nil { - return nil, fmt.Errorf("Failed to read file %v: %w", selectTemperaturesSQLFile, err) - } - tx, err := sqlite.dbo.BeginTx(ctx, &sql.TxOptions{ReadOnly: true}) if err != nil { return nil, err } defer tx.Rollback() - measuredValues, err := sqlite.selectMeasuredValue(tx, string(f)) + measuredValues, err := sqlite.selectMeasuredValue(tx, selectTemperaturesSQL) if err != nil { return nil, err } @@ -1048,18 +993,13 @@ func (sqlite *SQLite) RemoveDevicesByIDs(ctx context.Context, deviceIDs ...strin sqlite.mutex.Lock() defer sqlite.mutex.Unlock() - f, err := sqlite3DMLAssets.ReadFile(deleteDeviceByIDSQLFile) - if err != nil { - return fmt.Errorf("Failed to read file %v: %w", deleteDeviceByIDSQLFile, err) - } - tx, err := sqlite.dbo.BeginTx(ctx, &sql.TxOptions{ReadOnly: false}) if err != nil { return fmt.Errorf("Failed to begin new transaction: %v", err) } defer tx.Rollback() - stmt, err := tx.Prepare(string(f)) + stmt, err := tx.Prepare(deleteDeviceByIDSQL) if err != nil { return fmt.Errorf("Failed to prepare statement: %v", err) } @@ -1080,18 +1020,13 @@ func (sqlite *SQLite) RemoveDevicesByNames(ctx context.Context, names ...string) sqlite.mutex.Lock() defer sqlite.mutex.Unlock() - f, err := sqlite3DMLAssets.ReadFile(deleteDeviceByNameSQLFile) - if err != nil { - return fmt.Errorf("Failed to read file %v: %w", deleteDeviceByNameSQLFile, err) - } - tx, err := sqlite.dbo.BeginTx(ctx, &sql.TxOptions{ReadOnly: false}) if err != nil { return fmt.Errorf("Failed to begin new transaction: %v", err) } defer tx.Rollback() - stmt, err := tx.Prepare(string(f)) + stmt, err := tx.Prepare(deleteDeviceByNameSQL) if err != nil { return fmt.Errorf("Failed to prepare statement: %v", err) } @@ -1112,18 +1047,13 @@ func (sqlite *SQLite) RemoveSensorsByIDs(ctx context.Context, sensorIDs ...strin sqlite.mutex.Lock() defer sqlite.mutex.Unlock() - f, err := sqlite3DMLAssets.ReadFile(deleteSensorByIDSQLFile) - if err != nil { - return fmt.Errorf("Failed to read file %v: %w", deleteSensorByIDSQLFile, err) - } - tx, err := sqlite.dbo.BeginTx(ctx, &sql.TxOptions{ReadOnly: false}) if err != nil { return fmt.Errorf("Failed to begin new transaction: %v", err) } defer tx.Rollback() - stmt, err := tx.Prepare(string(f)) + stmt, err := tx.Prepare(deleteSensorByIDSQL) if err != nil { return fmt.Errorf("Failed to prepare statement: %v", err) } @@ -1144,18 +1074,13 @@ func (sqlite *SQLite) RemoveSensorsByNames(ctx context.Context, names ...string) sqlite.mutex.Lock() defer sqlite.mutex.Unlock() - f, err := sqlite3DMLAssets.ReadFile(deleteSensorByNameSQLFile) - if err != nil { - return fmt.Errorf("Failed to read file %v: %w", deleteSensorByNameSQLFile, err) - } - tx, err := sqlite.dbo.BeginTx(ctx, &sql.TxOptions{ReadOnly: false}) if err != nil { return fmt.Errorf("Failed to begin new transaction: %v", err) } defer tx.Rollback() - stmt, err := tx.Prepare(string(f)) + stmt, err := tx.Prepare(deleteSensorByNameSQL) if err != nil { return fmt.Errorf("Failed to prepare statement: %v", err) } @@ -1176,18 +1101,13 @@ func (sqlite *SQLite) UpdateDevices(ctx context.Context, devices ...*types.Devic sqlite.mutex.Lock() defer sqlite.mutex.Unlock() - f, err := sqlite3DMLAssets.ReadFile(updateDeviceSQLFile) - if err != nil { - return fmt.Errorf("Failed to read file %v: %w", updateDeviceSQLFile, err) - } - tx, err := sqlite.dbo.BeginTx(ctx, &sql.TxOptions{ReadOnly: false}) if err != nil { return err } defer tx.Rollback() - stmt, err := tx.Prepare(string(f)) + stmt, err := tx.Prepare(updateDeviceSQL) if err != nil { return err } @@ -1214,18 +1134,13 @@ func (sqlite *SQLite) UpdateSensors(ctx context.Context, sensors ...*types.Senso sqlite.mutex.Lock() defer sqlite.mutex.Unlock() - f, err := sqlite3DMLAssets.ReadFile(updateSensorSQLFile) - if err != nil { - return fmt.Errorf("Failed to read file %v: %w", updateSensorSQLFile, err) - } - tx, err := sqlite.dbo.BeginTx(ctx, &sql.TxOptions{ReadOnly: false}) if err != nil { return err } defer tx.Rollback() - stmt, err := tx.Prepare(string(f)) + stmt, err := tx.Prepare(updateSensorSQL) if err != nil { return err }