github.com/infraboard/keyauth@v0.8.1/apps/session/impl/admin.go (about) 1 package impl 2 3 import ( 4 "context" 5 6 "github.com/infraboard/keyauth/apps/session" 7 "github.com/infraboard/mcube/exception" 8 "go.mongodb.org/mongo-driver/mongo" 9 ) 10 11 func (s *service) QueryUserLastSession(ctx context.Context, req *session.QueryUserLastSessionRequest) (*session.Session, error) { 12 r, err := newQueryUserLastSessionRequest(req) 13 if err != nil { 14 return nil, exception.NewBadRequest("validate query session request error, %s", err) 15 } 16 17 ins := session.NewDefaultSession() 18 if err := s.col.FindOne(context.TODO(), r.FindFilter(), r.FindOptions()).Decode(ins); err != nil { 19 if err == mongo.ErrNoDocuments { 20 return nil, exception.NewNotFound("session %s not found", req) 21 } 22 23 return nil, exception.NewInternalServerError("find session %s error, %s", req.Account, err) 24 } 25 return ins, nil 26 }