goMuffin/databases/Chat.go

32 lines
817 B
Go

package databases
import (
"context"
"time"
"go.mongodb.org/mongo-driver/v2/bson"
"go.mongodb.org/mongo-driver/v2/mongo"
)
type Chat struct {
Id bson.ObjectID `bson:"_id,omitempty"`
Name string `bson:"name,omitempty"`
UserId string `bson:"user_id,omitempty"`
CreatedAt time.Time `bson:"created_at,omitempty"`
}
func CreateChat(userId, name string) (*mongo.InsertOneResult, error) {
createdChat, err := Database.Chats.InsertOne(context.TODO(), Chat{UserId: userId, Name: name, CreatedAt: time.Now()})
if err != nil {
return nil, err
}
_, err = Database.Users.UpdateOne(context.TODO(), User{UserId: userId}, bson.D{{
Key: "$set",
Value: User{ChatId: createdChat.InsertedID.(bson.ObjectID)},
}})
if err != nil {
return nil, err
}
return createdChat, nil
}