mirror of
https://github.com/APIParkLab/APIPark.git
synced 2026-06-14 20:41:15 +08:00
45 lines
1.5 KiB
Go
45 lines
1.5 KiB
Go
package commit
|
|
|
|
import (
|
|
"context"
|
|
"reflect"
|
|
|
|
"github.com/APIParkLab/APIPark/stores/universally/commit"
|
|
"github.com/eolinker/go-common/autowire"
|
|
)
|
|
|
|
type ICommitWithKeyService[T any] interface {
|
|
Latest(ctx context.Context, target string) (*Commit[T], error)
|
|
ListLatest(ctx context.Context, target ...string) ([]*Commit[T], error)
|
|
Save(ctx context.Context, target string, data *T) error
|
|
Get(ctx context.Context, uuid string) (*Commit[T], error)
|
|
List(ctx context.Context, uuids ...string) ([]*Commit[T], error)
|
|
}
|
|
|
|
func InitCommitWithKeyService[T any](name string, key string) {
|
|
autowire.Auto[commit.ICommitWKStore[T]](func() reflect.Value {
|
|
|
|
return reflect.ValueOf(commit.NewCommitWithKey[T](name, key))
|
|
})
|
|
autowire.Auto[ICommitWithKeyService[T]](func() reflect.Value {
|
|
return reflect.ValueOf(&imlCommitWithKeyService[T]{})
|
|
})
|
|
}
|
|
|
|
type ICommitService[T any] interface {
|
|
Latest(ctx context.Context, target string, key string) (*Commit[T], error)
|
|
ListLatest(ctx context.Context, key string, target ...string) ([]*Commit[T], error)
|
|
Save(ctx context.Context, target string, key string, data *T) error
|
|
Get(ctx context.Context, uuid string) (*Commit[T], error)
|
|
List(ctx context.Context, uuids ...string) ([]*Commit[T], error)
|
|
}
|
|
|
|
func InitCommitService[T any](name string) {
|
|
autowire.Auto[commit.ICommitStore[T]](func() reflect.Value {
|
|
return reflect.ValueOf(commit.NewCommitStore[T](name))
|
|
})
|
|
autowire.Auto[ICommitService[T]](func() reflect.Value {
|
|
return reflect.ValueOf(&imlCommitService[T]{})
|
|
})
|
|
}
|