Finishing up the logger data models
This commit is contained in:
		@ -6,6 +6,7 @@ import (
 | 
			
		||||
	"time"
 | 
			
		||||
 | 
			
		||||
	"go.mongodb.org/mongo-driver/bson"
 | 
			
		||||
	"go.mongodb.org/mongo-driver/bson/primitive"
 | 
			
		||||
	"go.mongodb.org/mongo-driver/mongo"
 | 
			
		||||
	"go.mongodb.org/mongo-driver/mongo/options"
 | 
			
		||||
)
 | 
			
		||||
@ -76,3 +77,62 @@ func (l *LogEntry) All() ([]*LogEntry, error) {
 | 
			
		||||
	}
 | 
			
		||||
	return logs, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (l *LogEntry) GetOne(id string) (*LogEntry, error) {
 | 
			
		||||
	ctx, cancel := context.WithTimeout(context.Background(), 15*time.Second)
 | 
			
		||||
	defer cancel()
 | 
			
		||||
 | 
			
		||||
	collection := client.Database("logs").Collection("logs")
 | 
			
		||||
 | 
			
		||||
	docID, err := primitive.ObjectIDFromHex(id)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	var entry LogEntry
 | 
			
		||||
	err = collection.FindOne(ctx, bson.M{"_id": docID}).Decode(&entry)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	return &entry, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (l *LogEntry) DropCollection() error {
 | 
			
		||||
	ctx, cancel := context.WithTimeout(context.Background(), 15*time.Second)
 | 
			
		||||
	defer cancel()
 | 
			
		||||
 | 
			
		||||
	collection := client.Database("logs").Collection("logs")
 | 
			
		||||
 | 
			
		||||
	if err := collection.Drop(ctx); err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (l *LogEntry) Update() (*mongo.UpdateResult, error) {
 | 
			
		||||
	ctx, cancel := context.WithTimeout(context.Background(), 15*time.Second)
 | 
			
		||||
	defer cancel()
 | 
			
		||||
 | 
			
		||||
	collection := client.Database("logs").Collection("logs")
 | 
			
		||||
 | 
			
		||||
	docID, err := primitive.ObjectIDFromHex(l.ID)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	result, err := collection.UpdateOne(
 | 
			
		||||
		ctx,
 | 
			
		||||
		bson.M{"_id": docID},
 | 
			
		||||
		bson.D{
 | 
			
		||||
			{Key: "$set", Value: bson.D{
 | 
			
		||||
				{Key: "name", Value: l.Name},
 | 
			
		||||
				{Key: "data", Value: l.Data},
 | 
			
		||||
				{Key: "updated_at", Value: time.Now()},
 | 
			
		||||
			}},
 | 
			
		||||
		})
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	return result, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user