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