Implement event recorder grpc

This commit is contained in:
2024-10-14 22:09:45 +08:00
parent 06bd632f37
commit a4a139c56e
3 changed files with 27 additions and 5 deletions

View File

@ -0,0 +1,20 @@
package grpc
import (
"context"
"git.solsynth.dev/hydrogen/dealer/pkg/proto"
"git.solsynth.dev/hydrogen/passport/pkg/internal/models"
"git.solsynth.dev/hydrogen/passport/pkg/internal/services"
)
func (v *Server) RecordEvent(ctx context.Context, request *proto.RecordEventRequest) (*proto.RecordEventResponse, error) {
var user models.Account
var err error
if user, err = services.GetAccount(uint(request.GetUserId())); err != nil {
return nil, err
}
services.AddEvent(user, request.GetAction(), request.GetTarget(), request.GetIp(), request.GetUserAgent())
return &proto.RecordEventResponse{IsSuccess: true}, nil
}

View File

@ -17,6 +17,7 @@ type Server struct {
proto.UnimplementedNotifierServer
proto.UnimplementedRealmServer
proto.UnimplementedStreamControllerServer
proto.UnimplementedEventRecorderServer
health.UnimplementedHealthServer
srv *grpc.Server
@ -31,6 +32,7 @@ func NewServer() *Server {
proto.RegisterNotifierServer(server.srv, server)
proto.RegisterRealmServer(server.srv, server)
proto.RegisterStreamControllerServer(server.srv, server)
proto.RegisterEventRecorderServer(server.srv, server)
health.RegisterHealthServer(server.srv, server)
reflection.Register(server.srv)