Compare commits
4 Commits
Author | SHA1 | Date | |
---|---|---|---|
d017530444
|
|||
8de83cc290
|
|||
603ec82b83
|
|||
93c4cf31a8
|
@@ -11,6 +11,7 @@ import (
|
||||
"io"
|
||||
"os"
|
||||
"path"
|
||||
"path/filepath"
|
||||
"regexp"
|
||||
"strings"
|
||||
"time"
|
||||
@@ -24,6 +25,7 @@ type EnumDefVal struct {
|
||||
|
||||
type EnumDef struct {
|
||||
File string
|
||||
FileRelative string
|
||||
EnumTypeName string
|
||||
Type string
|
||||
Values []EnumDefVal
|
||||
@@ -83,7 +85,7 @@ func GenerateEnumSpecs(sourceDir string, destFile string) error {
|
||||
|
||||
for _, f := range files {
|
||||
fmt.Printf("========= %s =========\n\n", f.Name())
|
||||
fileEnums, pn, err := processFile(path.Join(sourceDir, f.Name()))
|
||||
fileEnums, pn, err := processFile(sourceDir, path.Join(sourceDir, f.Name()))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -123,7 +125,7 @@ func GenerateEnumSpecs(sourceDir string, destFile string) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func processFile(fn string) ([]EnumDef, string, error) {
|
||||
func processFile(basedir string, fn string) ([]EnumDef, string, error) {
|
||||
file, err := os.Open(fn)
|
||||
if err != nil {
|
||||
return nil, "", err
|
||||
@@ -153,8 +155,15 @@ func processFile(fn string) ([]EnumDef, string, error) {
|
||||
}
|
||||
|
||||
if match, ok := rexEnumDef.MatchFirst(line); ok {
|
||||
|
||||
rfp, err := filepath.Rel(basedir, fn)
|
||||
if err != nil {
|
||||
return nil, "", err
|
||||
}
|
||||
|
||||
def := EnumDef{
|
||||
File: fn,
|
||||
FileRelative: rfp,
|
||||
EnumTypeName: match.GroupByName("name").Value(),
|
||||
Type: match.GroupByName("type").Value(),
|
||||
Values: make([]EnumDefVal, 0),
|
||||
@@ -239,7 +248,7 @@ func fmtOutput(cs string, enums []EnumDef, pkgname string) string {
|
||||
|
||||
str += "// ================================ " + enumdef.EnumTypeName + " ================================" + "\n"
|
||||
str += "//" + "\n"
|
||||
str += "// File: " + enumdef.File + "\n"
|
||||
str += "// File: " + enumdef.FileRelative + "\n"
|
||||
str += "// StringEnum: " + langext.Conditional(hasStr, "true", "false") + "\n"
|
||||
str += "// DescrEnum: " + langext.Conditional(hasDescr, "true", "false") + "\n"
|
||||
str += "//" + "\n"
|
||||
|
@@ -1,5 +1,5 @@
|
||||
package goext
|
||||
|
||||
const GoextVersion = "0.0.152"
|
||||
const GoextVersion = "0.0.156"
|
||||
|
||||
const GoextVersionTimestamp = "2023-06-08T16:17:01+0200"
|
||||
const GoextVersionTimestamp = "2023-06-10T00:19:17+0200"
|
||||
|
@@ -2,13 +2,17 @@ package wmo
|
||||
|
||||
import (
|
||||
"context"
|
||||
"go.mongodb.org/mongo-driver/bson/bsontype"
|
||||
"go.mongodb.org/mongo-driver/mongo"
|
||||
ct "gogs.mikescher.com/BlackForestBytes/goext/cursortoken"
|
||||
"gogs.mikescher.com/BlackForestBytes/goext/langext"
|
||||
"reflect"
|
||||
)
|
||||
|
||||
type EntityID = any
|
||||
type EntityID interface {
|
||||
MarshalBSONValue() (bsontype.Type, []byte, error)
|
||||
String() string
|
||||
}
|
||||
|
||||
type fullTypeRef[TData any] struct {
|
||||
IsPointer bool
|
||||
|
@@ -6,7 +6,7 @@ import (
|
||||
"go.mongodb.org/mongo-driver/mongo"
|
||||
)
|
||||
|
||||
func (c *Coll[TData]) DeleteOne(ctx context.Context, id EntityID) error {
|
||||
func (c *Coll[TData]) DeleteOneByID(ctx context.Context, id EntityID) error {
|
||||
_, err := c.coll.DeleteOne(ctx, bson.M{"_id": id})
|
||||
if err != nil {
|
||||
return err
|
||||
@@ -15,6 +15,15 @@ func (c *Coll[TData]) DeleteOne(ctx context.Context, id EntityID) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (c *Coll[TData]) DeleteOne(ctx context.Context, filterQuery bson.M) error {
|
||||
_, err := c.coll.DeleteOne(ctx, filterQuery)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (c *Coll[TData]) DeleteMany(ctx context.Context, filterQuery bson.M) (*mongo.DeleteResult, error) {
|
||||
res, err := c.coll.DeleteMany(ctx, filterQuery)
|
||||
if err != nil {
|
||||
|
@@ -45,8 +45,8 @@ func (c *Coll[TData]) UpdateMany(ctx context.Context, filterQuery bson.M, update
|
||||
return res, nil
|
||||
}
|
||||
|
||||
func (c *Coll[TData]) ReplaceOne(ctx context.Context, id EntityID, value TData) error {
|
||||
_, err := c.coll.UpdateOne(ctx, bson.M{"_id": id}, bson.M{"$set": value})
|
||||
func (c *Coll[TData]) ReplaceOne(ctx context.Context, filterQuery bson.M, value TData) error {
|
||||
_, err := c.coll.UpdateOne(ctx, filterQuery, bson.M{"$set": value})
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -54,10 +54,10 @@ func (c *Coll[TData]) ReplaceOne(ctx context.Context, id EntityID, value TData)
|
||||
return nil
|
||||
}
|
||||
|
||||
func (c *Coll[TData]) FindOneAndReplace(ctx context.Context, id EntityID, value TData) (TData, error) {
|
||||
func (c *Coll[TData]) FindOneAndReplace(ctx context.Context, filterQuery bson.M, value TData) (TData, error) {
|
||||
var res TData
|
||||
|
||||
err := c.coll.FindOneAndUpdate(ctx, bson.M{"_id": id}, bson.M{"$set": value}, options.FindOneAndUpdate().SetReturnDocument(options.After)).Decode(&res)
|
||||
err := c.coll.FindOneAndUpdate(ctx, filterQuery, bson.M{"$set": value}, options.FindOneAndUpdate().SetReturnDocument(options.After)).Decode(&res)
|
||||
if err != nil {
|
||||
return *new(TData), err
|
||||
}
|
||||
|
Reference in New Issue
Block a user