package tripsgo import ( "fmt" "strconv" ) // SelectTripByIDQuery - REQUIRED tripID value func SelectTripByIDQuery(tripID string) string { return `SELECT Id, Name, UserId, RecordedTimeStamp, EndTimeStamp, Rating, IsComplete, HasSimulatedOBDData, AverageSpeed, FuelUsed, HardStops, HardAccelerations, Distance, CreatedAt, UpdatedAt FROM Trips WHERE Id = '` + tripID + `' AND Deleted = 0` } var SelectAllTripsQuery = selectAllTripsQuery // SelectAllTripsQuery - select all trips func selectAllTripsQuery() string { return `SELECT Id, Name, UserId, RecordedTimeStamp, EndTimeStamp, Rating, IsComplete, HasSimulatedOBDData, AverageSpeed, FuelUsed, HardStops, HardAccelerations, Distance, CreatedAt, UpdatedAt FROM Trips WHERE Deleted = 0` } // SelectAllTripsForUserQuery REQUIRED userID var SelectAllTripsForUserQuery = selectAllTripsForUserQuery func selectAllTripsForUserQuery(userID string) string { return `SELECT Id, Name, UserId, RecordedTimeStamp, EndTimeStamp, Rating, IsComplete, HasSimulatedOBDData, AverageSpeed, FuelUsed, HardStops, HardAccelerations, Distance, CreatedAt, UpdatedAt FROM Trips WHERE UserId ='` + userID + `' AND Deleted = 0` } // DeleteTripPointsForTripQuery - REQUIRED tripID func DeleteTripPointsForTripQuery(tripID string) string { return fmt.Sprintf("UPDATE TripPoints SET Deleted = 1 WHERE TripId = '%s'", tripID) } // DeleteTripQuery - REQUIRED tripID func DeleteTripQuery(tripID string) string { return fmt.Sprintf("UPDAte Trips SET Deleted = 1 WHERE Id = '%s'", tripID) } // UpdateTripQuery - REQUIRED trip object and tripID func UpdateTripQuery(trip Trip) string { var query = `UPDATE Trips SET Name = '%s', UserId = '%s', RecordedTimeStamp = '%s', EndTimeStamp = '%s', Rating = %d, IsComplete = '%s', HasSimulatedOBDData = '%s', AverageSpeed = %g, FuelUsed = %g, HardStops = %d, HardAccelerations = %d, Distance = %g, UpdatedAt = GETDATE() WHERE Id = '%s'` var formattedQuery = fmt.Sprintf( query, trip.Name, trip.UserID, trip.RecordedTimeStamp, trip.EndTimeStamp, trip.Rating, strconv.FormatBool(trip.IsComplete), strconv.FormatBool(trip.HasSimulatedOBDData), trip.AverageSpeed, trip.FuelUsed, trip.HardStops, trip.HardAccelerations, trip.Distance, trip.ID) Debug.Println("updateTripQuery: " + formattedQuery) return formattedQuery } func createTripQuery(trip Trip) string { var query = `DECLARE @tempReturn TABLE (TripId NVARCHAR(128)); INSERT INTO Trips ( Name, UserId, RecordedTimeStamp, EndTimeStamp, Rating, IsComplete, HasSimulatedOBDData, AverageSpeed, FuelUsed, HardStops, HardAccelerations, Distance, UpdatedAt, Deleted) OUTPUT Inserted.ID INTO @tempReturn VALUES ( '%s', '%s', '%s', '%s', %d, '%s', '%s', %g, %g, %d, %d, %g, GETDATE(), 'false'); SELECT TripId FROM @tempReturn` var formattedQuery = fmt.Sprintf( query, trip.Name, trip.UserID, trip.RecordedTimeStamp, trip.EndTimeStamp, trip.Rating, strconv.FormatBool(trip.IsComplete), strconv.FormatBool(trip.HasSimulatedOBDData), trip.AverageSpeed, trip.FuelUsed, trip.HardStops, trip.HardAccelerations, trip.Distance) Debug.Println("createTripQuery: " + formattedQuery) return formattedQuery } func selectTripPointsForTripQuery(tripID string) string { var query = `SELECT [Id], [TripId], [Latitude], [Longitude], [Speed], [RecordedTimeStamp], [Sequence], [RPM], [ShortTermFuelBank], [LongTermFuelBank], [ThrottlePosition], [RelativeThrottlePosition], [Runtime], [DistanceWithMalfunctionLight], [EngineLoad], [EngineFuelRate], [VIN] FROM [dbo].[TripPoints] WHERE TripId = '%s' AND Deleted = 0` var formattedQuery = fmt.Sprintf( query, tripID) Debug.Println("selectTripPointsForTripQuery: " + formattedQuery) return formattedQuery } func selectTripPointsForTripPointIDQuery(tripPointID string) string { var query = `SELECT [Id], [TripId], [Latitude], [Longitude], [Speed], [RecordedTimeStamp], [Sequence], [RPM], [ShortTermFuelBank], [LongTermFuelBank], [ThrottlePosition], [RelativeThrottlePosition], [Runtime], [DistanceWithMalfunctionLight], [EngineLoad], [EngineFuelRate], [VIN] FROM TripPoints WHERE Id = '%s' AND Deleted = 0` var formattedQuery = fmt.Sprintf( query, tripPointID) Debug.Println("selectTripPointsForTripPointIDQuery: " + formattedQuery) return formattedQuery } func createTripPointQuery(tripPoint TripPoint, tripID string) string { var query = `DECLARE @tempReturn TABLE (TripPointId NVARCHAR(128)); INSERT INTO TripPoints ( [TripId], [Latitude], [Longitude], [Speed], [RecordedTimeStamp], [Sequence], [RPM], [ShortTermFuelBank], [LongTermFuelBank], [ThrottlePosition], [RelativeThrottlePosition], [Runtime], [DistanceWithMalfunctionLight], [EngineLoad], [EngineFuelRate], [MassFlowRate], [HasOBDData], [HasSimulatedOBDData], [VIN], [UpdatedAt], [Deleted]) OUTPUT Inserted.ID INTO @tempReturn VALUES ( '%s', %g, %g, %g, '%s', %d, %g, %g, %g, %g, %g, %g, %g, %g, %g, %g, '%s', '%s', '%s', GETDATE(), 'false'); SELECT TripPointId FROM @tempReturn` var formattedQuery = fmt.Sprintf( query, tripID, tripPoint.Latitude, tripPoint.Longitude, tripPoint.Speed, tripPoint.RecordedTimeStamp, tripPoint.Sequence, tripPoint.RPM, tripPoint.ShortTermFuelBank, tripPoint.LongTermFuelBank, tripPoint.ThrottlePosition, tripPoint.RelativeThrottlePosition, tripPoint.Runtime, tripPoint.DistanceWithMalfunctionLight, tripPoint.EngineLoad, tripPoint.MassFlowRate, tripPoint.EngineFuelRate, strconv.FormatBool(tripPoint.HasOBDData), strconv.FormatBool(tripPoint.HasSimulatedOBDData), tripPoint.VIN) Debug.Println("createTripPointQuery: " + formattedQuery) return formattedQuery } func updateTripPointQuery(tripPoint TripPoint) string { var query = `UPDATE [TripPoints] SET [TripId] = '%s', [Latitude] = '%s', [Longitude] = '%s', [Speed] = '%s', [RecordedTimeStamp] = '%s', [Sequence] = %d,[RPM] = '%s', [ShortTermFuelBank] = '%s', [LongTermFuelBank] = '%s', [ThrottlePosition] = '%s', [RelativeThrottlePosition] = '%s', [Runtime] = '%s', [DistanceWithMalfunctionLight] = '%s', [EngineLoad] = '%s', [MassFlowRate] = '%s', [EngineFuelRate] = '%s', [HasOBDData] = '%s', [HasSimulatedOBDData] = '%s', [VIN] = '%s' WHERE Id = '%s'` var formattedQuery = fmt.Sprintf( query, tripPoint.TripID, tripPoint.Latitude, tripPoint.Longitude, tripPoint.Speed, tripPoint.RecordedTimeStamp, tripPoint.Sequence, tripPoint.RPM, tripPoint.ShortTermFuelBank, tripPoint.LongTermFuelBank, tripPoint.ThrottlePosition, tripPoint.RelativeThrottlePosition, tripPoint.Runtime, tripPoint.DistanceWithMalfunctionLight, tripPoint.EngineLoad, tripPoint.MassFlowRate, tripPoint.EngineFuelRate, strconv.FormatBool(tripPoint.HasOBDData), strconv.FormatBool(tripPoint.HasSimulatedOBDData), tripPoint.VIN, tripPoint.ID) Debug.Println("updateTripPointQuery: " + formattedQuery) return formattedQuery } func deleteTripPointQuery(tripPointID string) string { var query = `UPDATE TripPoints SET Deleted = 1 WHERE Id = '%s'` var formattedQuery = fmt.Sprintf( query, tripPointID) Debug.Println("deleteTripPointQuery: " + formattedQuery) return formattedQuery }