github.com/infraboard/keyauth@v0.8.1/apps/policy/impl/impl.go (about) 1 package impl 2 3 import ( 4 "context" 5 6 "github.com/infraboard/mcube/app" 7 "github.com/infraboard/mcube/logger" 8 "github.com/infraboard/mcube/logger/zap" 9 "go.mongodb.org/mongo-driver/mongo" 10 "go.mongodb.org/mongo-driver/x/bsonx" 11 "google.golang.org/grpc" 12 13 "github.com/infraboard/keyauth/apps/namespace" 14 "github.com/infraboard/keyauth/apps/policy" 15 "github.com/infraboard/keyauth/apps/role" 16 "github.com/infraboard/keyauth/apps/user" 17 "github.com/infraboard/keyauth/conf" 18 ) 19 20 var ( 21 // Service 服务实例 22 svr = &service{} 23 ) 24 25 type service struct { 26 log logger.Logger 27 col *mongo.Collection 28 enableCache bool 29 notifyCachPre string 30 31 namespace namespace.ServiceServer 32 user user.ServiceServer 33 role role.ServiceServer 34 35 policy.UnimplementedServiceServer 36 } 37 38 func (s *service) Config() error { 39 s.namespace = app.GetGrpcApp(namespace.AppName).(namespace.ServiceServer) 40 s.user = app.GetGrpcApp(user.AppName).(user.ServiceServer) 41 s.role = app.GetGrpcApp(role.AppName).(role.ServiceServer) 42 43 db := conf.C().Mongo.GetDB() 44 col := db.Collection("policy") 45 46 indexs := []mongo.IndexModel{ 47 { 48 Keys: bsonx.Doc{{Key: "create_at", Value: bsonx.Int32(-1)}}, 49 }, 50 } 51 52 _, err := col.Indexes().CreateMany(context.Background(), indexs) 53 if err != nil { 54 return err 55 } 56 57 s.col = col 58 s.log = zap.L().Named("Policy") 59 return nil 60 } 61 62 func (s *service) Name() string { 63 return policy.AppName 64 } 65 66 func (s *service) Registry(server *grpc.Server) { 67 policy.RegisterServiceServer(server, svr) 68 } 69 70 func init() { 71 app.RegistryGrpcApp(svr) 72 }