timetable-extension #1
@ -33,8 +33,14 @@ func runCifFullDownload(cfg *helpers.Configuration) error {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// Drop timetable collection
 | 
			
		||||
	dbAccess.DropCollection(dbAccess.TimetableCollection) // I should edit this to prevent removal of VSTP entries in the database.
 | 
			
		||||
	// Try to remove all non-vstp entries, else give up and delete collection
 | 
			
		||||
	count, err := dbAccess.PurgeNonVstp()
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		log.Warn("Error purging non-vstp schedules, dropping collection", zap.Error(err))
 | 
			
		||||
		dbAccess.DropCollection(dbAccess.TimetableCollection) // I should edit this to prevent removal of VSTP entries in the database.
 | 
			
		||||
	} else {
 | 
			
		||||
		log.Info("Removed non-vstp services", zap.Int64("deletion count", count))
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// Process CIF file
 | 
			
		||||
	err = ProcessParsedCif(parsed)
 | 
			
		||||
 | 
			
		||||
@ -108,6 +108,19 @@ func DeleteCifEntries(deletions []database.DeleteQuery) error {
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Clears all non-vstp services from the database.  Used when a CIF full download is required.
 | 
			
		||||
func PurgeNonVstp() (int64, error) {
 | 
			
		||||
	coll := MongoClient.Database(DatabaseName).Collection(TimetableCollection)
 | 
			
		||||
	filter := bson.M{"serviceDetail.vstp": false}
 | 
			
		||||
 | 
			
		||||
	result, err := coll.DeleteMany(context.Background(), filter)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return result.DeletedCount, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return result.DeletedCount, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Handles 'Create' tasks for CIF Schedule updates, accepts Service structs and batches their creation.
 | 
			
		||||
func CreateCifEntries(schedules []database.Service) error {
 | 
			
		||||
	// Skip if deletions is empty
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user