add logics
This commit is contained in:
@@ -6,7 +6,9 @@ import (
|
||||
|
||||
"backend/database/models/qvyun/public/model"
|
||||
"backend/database/models/qvyun/public/table"
|
||||
"backend/pkg/pg"
|
||||
|
||||
. "github.com/go-jet/jet/v2/postgres"
|
||||
"github.com/pkg/errors"
|
||||
"github.com/sirupsen/logrus"
|
||||
)
|
||||
@@ -22,15 +24,43 @@ func (svc *Service) Prepare() error {
|
||||
return nil
|
||||
}
|
||||
|
||||
// List
|
||||
func (svc *Service) List(ctx context.Context) ([]model.Users, error) {
|
||||
// GetByOpenID
|
||||
func (svc *Service) GetByOpenID(ctx context.Context, openid string) (*model.Users, error) {
|
||||
tbl := table.Users
|
||||
stmt := tbl.SELECT(tbl.AllColumns)
|
||||
svc.log.WithField("method", "List").Debug(stmt.DebugSql())
|
||||
stmt := tbl.
|
||||
SELECT(tbl.AllColumns).
|
||||
WHERE(
|
||||
tbl.OpenID.EQ(String(openid)),
|
||||
)
|
||||
svc.log.WithField("method", "GetByOpenID").Debug(stmt.DebugSql())
|
||||
|
||||
var items []model.Users
|
||||
if err := stmt.QueryContext(ctx, svc.db, &items); err != nil {
|
||||
return nil, errors.Wrap(err, "failed to query users")
|
||||
var item model.Users
|
||||
if err := stmt.QueryContext(ctx, svc.db, &item); err != nil {
|
||||
return nil, errors.Wrap(err, "failed to query user by openid")
|
||||
}
|
||||
return items, nil
|
||||
return &item, nil
|
||||
}
|
||||
|
||||
// GetOrNew
|
||||
func (svc *Service) GetOrNew(ctx context.Context, openid string, authInfo pg.UserOAuth) (*model.Users, error) {
|
||||
user, err := svc.GetByOpenID(ctx, openid)
|
||||
if err == nil {
|
||||
return user, nil
|
||||
}
|
||||
|
||||
if err != nil {
|
||||
if errors.Is(err, sql.ErrNoRows) {
|
||||
// user = &model.Users{
|
||||
// OpenID: openid,
|
||||
// OAuth:,authInfo
|
||||
// }
|
||||
// if err := user.Insert(ctx, svc.db, table.Users); err != nil {
|
||||
// return nil, errors.Wrap(err, "failed to insert user")
|
||||
// }
|
||||
}
|
||||
return nil, errors.Wrap(err, "failed to get user by openid")
|
||||
|
||||
}
|
||||
|
||||
return nil, errors.New("unknown error")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user