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  }