timetable-extension #1
@ -47,7 +47,19 @@ func runCifFullDownload(cfg *helpers.Configuration) error {
 | 
			
		||||
		log.Warn("CIF Data updated, but metadata write failed")
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// Set parsed to nil to encourage garbage collection
 | 
			
		||||
	parsed = nil
 | 
			
		||||
 | 
			
		||||
	// Clear out of date schedules
 | 
			
		||||
	cutoff := time.Now().Add(-time.Hour * 24 * 7)
 | 
			
		||||
	log.Debug("Attempting to remove outdated services", zap.Time("scheduleEnd before", cutoff))
 | 
			
		||||
	count, err := dbAccess.RemoveOutdatedServices(cutoff)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		log.Warn("Out of date services not removed", zap.Error(err))
 | 
			
		||||
	} else {
 | 
			
		||||
		log.Info("Out of date services removed", zap.Int64("removal count", count))
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -138,3 +138,19 @@ func CreateCifEntries(schedules []database.Service) error {
 | 
			
		||||
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Removes any schedules which ended before 'cutoff'
 | 
			
		||||
func RemoveOutdatedServices(cutoff time.Time) (count int64, err error) {
 | 
			
		||||
	// Define filter
 | 
			
		||||
	filter := bson.M{"scheduleEndDate": bson.M{"$lt": cutoff}}
 | 
			
		||||
 | 
			
		||||
	collection := MongoClient.Database(databaseName).Collection(timetableCollection)
 | 
			
		||||
 | 
			
		||||
	res, err := collection.DeleteMany(context.Background(), filter)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return // Automatically returns named values
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	count = res.DeletedCount
 | 
			
		||||
	return // Automatically returns names values
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user