test token
This commit is contained in:
parent
c892ba3d8f
commit
41b6201a10
@ -57,10 +57,11 @@ var (
|
||||
{Name: "id", Type: field.TypeInt, Increment: true},
|
||||
{Name: "username", Type: field.TypeString, Unique: true, Size: 100},
|
||||
{Name: "did", Type: field.TypeString, Nullable: true},
|
||||
{Name: "token", Type: field.TypeString, Nullable: true},
|
||||
{Name: "password", Type: field.TypeString},
|
||||
{Name: "created_at", Type: field.TypeTime, Nullable: true},
|
||||
{Name: "updated_at", Type: field.TypeTime, Nullable: true},
|
||||
{Name: "next", Type: field.TypeString, Nullable: true, Default: "20230414"},
|
||||
{Name: "next", Type: field.TypeString, Nullable: true, Default: "20230418"},
|
||||
{Name: "group_users", Type: field.TypeInt, Nullable: true},
|
||||
}
|
||||
// UsersTable holds the schema information for the "users" table.
|
||||
@ -71,7 +72,7 @@ var (
|
||||
ForeignKeys: []*schema.ForeignKey{
|
||||
{
|
||||
Symbol: "users_groups_users",
|
||||
Columns: []*schema.Column{UsersColumns[7]},
|
||||
Columns: []*schema.Column{UsersColumns[8]},
|
||||
RefColumns: []*schema.Column{GroupsColumns[0]},
|
||||
OnDelete: schema.SetNull,
|
||||
},
|
||||
|
@ -1344,6 +1344,7 @@ type UserMutation struct {
|
||||
id *int
|
||||
username *string
|
||||
did *string
|
||||
token *string
|
||||
password *string
|
||||
created_at *time.Time
|
||||
updated_at *time.Time
|
||||
@ -1540,6 +1541,55 @@ func (m *UserMutation) ResetDid() {
|
||||
delete(m.clearedFields, user.FieldDid)
|
||||
}
|
||||
|
||||
// SetToken sets the "token" field.
|
||||
func (m *UserMutation) SetToken(s string) {
|
||||
m.token = &s
|
||||
}
|
||||
|
||||
// Token returns the value of the "token" field in the mutation.
|
||||
func (m *UserMutation) Token() (r string, exists bool) {
|
||||
v := m.token
|
||||
if v == nil {
|
||||
return
|
||||
}
|
||||
return *v, true
|
||||
}
|
||||
|
||||
// OldToken returns the old "token" field's value of the User entity.
|
||||
// If the User object wasn't provided to the builder, the object is fetched from the database.
|
||||
// An error is returned if the mutation operation is not UpdateOne, or the database query fails.
|
||||
func (m *UserMutation) OldToken(ctx context.Context) (v string, err error) {
|
||||
if !m.op.Is(OpUpdateOne) {
|
||||
return v, errors.New("OldToken is only allowed on UpdateOne operations")
|
||||
}
|
||||
if m.id == nil || m.oldValue == nil {
|
||||
return v, errors.New("OldToken requires an ID field in the mutation")
|
||||
}
|
||||
oldValue, err := m.oldValue(ctx)
|
||||
if err != nil {
|
||||
return v, fmt.Errorf("querying old value for OldToken: %w", err)
|
||||
}
|
||||
return oldValue.Token, nil
|
||||
}
|
||||
|
||||
// ClearToken clears the value of the "token" field.
|
||||
func (m *UserMutation) ClearToken() {
|
||||
m.token = nil
|
||||
m.clearedFields[user.FieldToken] = struct{}{}
|
||||
}
|
||||
|
||||
// TokenCleared returns if the "token" field was cleared in this mutation.
|
||||
func (m *UserMutation) TokenCleared() bool {
|
||||
_, ok := m.clearedFields[user.FieldToken]
|
||||
return ok
|
||||
}
|
||||
|
||||
// ResetToken resets all changes to the "token" field.
|
||||
func (m *UserMutation) ResetToken() {
|
||||
m.token = nil
|
||||
delete(m.clearedFields, user.FieldToken)
|
||||
}
|
||||
|
||||
// SetPassword sets the "password" field.
|
||||
func (m *UserMutation) SetPassword(s string) {
|
||||
m.password = &s
|
||||
@ -1811,13 +1861,16 @@ func (m *UserMutation) Type() string {
|
||||
// order to get all numeric fields that were incremented/decremented, call
|
||||
// AddedFields().
|
||||
func (m *UserMutation) Fields() []string {
|
||||
fields := make([]string, 0, 6)
|
||||
fields := make([]string, 0, 7)
|
||||
if m.username != nil {
|
||||
fields = append(fields, user.FieldUsername)
|
||||
}
|
||||
if m.did != nil {
|
||||
fields = append(fields, user.FieldDid)
|
||||
}
|
||||
if m.token != nil {
|
||||
fields = append(fields, user.FieldToken)
|
||||
}
|
||||
if m.password != nil {
|
||||
fields = append(fields, user.FieldPassword)
|
||||
}
|
||||
@ -1842,6 +1895,8 @@ func (m *UserMutation) Field(name string) (ent.Value, bool) {
|
||||
return m.Username()
|
||||
case user.FieldDid:
|
||||
return m.Did()
|
||||
case user.FieldToken:
|
||||
return m.Token()
|
||||
case user.FieldPassword:
|
||||
return m.Password()
|
||||
case user.FieldCreatedAt:
|
||||
@ -1863,6 +1918,8 @@ func (m *UserMutation) OldField(ctx context.Context, name string) (ent.Value, er
|
||||
return m.OldUsername(ctx)
|
||||
case user.FieldDid:
|
||||
return m.OldDid(ctx)
|
||||
case user.FieldToken:
|
||||
return m.OldToken(ctx)
|
||||
case user.FieldPassword:
|
||||
return m.OldPassword(ctx)
|
||||
case user.FieldCreatedAt:
|
||||
@ -1894,6 +1951,13 @@ func (m *UserMutation) SetField(name string, value ent.Value) error {
|
||||
}
|
||||
m.SetDid(v)
|
||||
return nil
|
||||
case user.FieldToken:
|
||||
v, ok := value.(string)
|
||||
if !ok {
|
||||
return fmt.Errorf("unexpected type %T for field %s", value, name)
|
||||
}
|
||||
m.SetToken(v)
|
||||
return nil
|
||||
case user.FieldPassword:
|
||||
v, ok := value.(string)
|
||||
if !ok {
|
||||
@ -1955,6 +2019,9 @@ func (m *UserMutation) ClearedFields() []string {
|
||||
if m.FieldCleared(user.FieldDid) {
|
||||
fields = append(fields, user.FieldDid)
|
||||
}
|
||||
if m.FieldCleared(user.FieldToken) {
|
||||
fields = append(fields, user.FieldToken)
|
||||
}
|
||||
if m.FieldCleared(user.FieldCreatedAt) {
|
||||
fields = append(fields, user.FieldCreatedAt)
|
||||
}
|
||||
@ -1981,6 +2048,9 @@ func (m *UserMutation) ClearField(name string) error {
|
||||
case user.FieldDid:
|
||||
m.ClearDid()
|
||||
return nil
|
||||
case user.FieldToken:
|
||||
m.ClearToken()
|
||||
return nil
|
||||
case user.FieldCreatedAt:
|
||||
m.ClearCreatedAt()
|
||||
return nil
|
||||
@ -2004,6 +2074,9 @@ func (m *UserMutation) ResetField(name string) error {
|
||||
case user.FieldDid:
|
||||
m.ResetDid()
|
||||
return nil
|
||||
case user.FieldToken:
|
||||
m.ResetToken()
|
||||
return nil
|
||||
case user.FieldPassword:
|
||||
m.ResetPassword()
|
||||
return nil
|
||||
|
@ -1290,6 +1290,12 @@ func (s *CreateUserReq) encodeFields(e *jx.Encoder) {
|
||||
s.Did.Encode(e)
|
||||
}
|
||||
}
|
||||
{
|
||||
if s.Token.Set {
|
||||
e.FieldStart("token")
|
||||
s.Token.Encode(e)
|
||||
}
|
||||
}
|
||||
{
|
||||
|
||||
e.FieldStart("password")
|
||||
@ -1325,14 +1331,15 @@ func (s *CreateUserReq) encodeFields(e *jx.Encoder) {
|
||||
}
|
||||
}
|
||||
|
||||
var jsonFieldsNameOfCreateUserReq = [7]string{
|
||||
var jsonFieldsNameOfCreateUserReq = [8]string{
|
||||
0: "username",
|
||||
1: "did",
|
||||
2: "password",
|
||||
3: "created_at",
|
||||
4: "updated_at",
|
||||
5: "next",
|
||||
6: "card",
|
||||
2: "token",
|
||||
3: "password",
|
||||
4: "created_at",
|
||||
5: "updated_at",
|
||||
6: "next",
|
||||
7: "card",
|
||||
}
|
||||
|
||||
// Decode decodes CreateUserReq from json.
|
||||
@ -1366,8 +1373,18 @@ func (s *CreateUserReq) Decode(d *jx.Decoder) error {
|
||||
}(); err != nil {
|
||||
return errors.Wrap(err, "decode field \"did\"")
|
||||
}
|
||||
case "token":
|
||||
if err := func() error {
|
||||
s.Token.Reset()
|
||||
if err := s.Token.Decode(d); err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}(); err != nil {
|
||||
return errors.Wrap(err, "decode field \"token\"")
|
||||
}
|
||||
case "password":
|
||||
requiredBitSet[0] |= 1 << 2
|
||||
requiredBitSet[0] |= 1 << 3
|
||||
if err := func() error {
|
||||
v, err := d.Str()
|
||||
s.Password = string(v)
|
||||
@ -1437,7 +1454,7 @@ func (s *CreateUserReq) Decode(d *jx.Decoder) error {
|
||||
// Validate required fields.
|
||||
var failures []validate.FieldError
|
||||
for i, mask := range [1]uint8{
|
||||
0b00000101,
|
||||
0b00001001,
|
||||
} {
|
||||
if result := (requiredBitSet[i] & mask) ^ mask; result != 0 {
|
||||
// Mask only required fields and check equality to mask using XOR.
|
||||
@ -3182,6 +3199,12 @@ func (s *UpdateUserReq) Encode(e *jx.Encoder) {
|
||||
|
||||
// encodeFields encodes fields.
|
||||
func (s *UpdateUserReq) encodeFields(e *jx.Encoder) {
|
||||
{
|
||||
if s.Token.Set {
|
||||
e.FieldStart("token")
|
||||
s.Token.Encode(e)
|
||||
}
|
||||
}
|
||||
{
|
||||
if s.UpdatedAt.Set {
|
||||
e.FieldStart("updated_at")
|
||||
@ -3206,10 +3229,11 @@ func (s *UpdateUserReq) encodeFields(e *jx.Encoder) {
|
||||
}
|
||||
}
|
||||
|
||||
var jsonFieldsNameOfUpdateUserReq = [3]string{
|
||||
0: "updated_at",
|
||||
1: "next",
|
||||
2: "card",
|
||||
var jsonFieldsNameOfUpdateUserReq = [4]string{
|
||||
0: "token",
|
||||
1: "updated_at",
|
||||
2: "next",
|
||||
3: "card",
|
||||
}
|
||||
|
||||
// Decode decodes UpdateUserReq from json.
|
||||
@ -3220,6 +3244,16 @@ func (s *UpdateUserReq) Decode(d *jx.Decoder) error {
|
||||
|
||||
if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error {
|
||||
switch string(k) {
|
||||
case "token":
|
||||
if err := func() error {
|
||||
s.Token.Reset()
|
||||
if err := s.Token.Decode(d); err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}(); err != nil {
|
||||
return errors.Wrap(err, "decode field \"token\"")
|
||||
}
|
||||
case "updated_at":
|
||||
if err := func() error {
|
||||
s.UpdatedAt.Reset()
|
||||
|
@ -459,7 +459,7 @@ func decodeListCardParams(args [0]string, r *http.Request) (params ListCardParam
|
||||
MinSet: true,
|
||||
Min: 1,
|
||||
MaxSet: true,
|
||||
Max: 25500,
|
||||
Max: 3000,
|
||||
MinExclusive: false,
|
||||
MaxExclusive: false,
|
||||
MultipleOfSet: false,
|
||||
@ -624,7 +624,7 @@ func decodeListGroupParams(args [0]string, r *http.Request) (params ListGroupPar
|
||||
MinSet: true,
|
||||
Min: 1,
|
||||
MaxSet: true,
|
||||
Max: 2550,
|
||||
Max: 3000,
|
||||
MinExclusive: false,
|
||||
MaxExclusive: false,
|
||||
MultipleOfSet: false,
|
||||
@ -956,7 +956,7 @@ func decodeListUserParams(args [0]string, r *http.Request) (params ListUserParam
|
||||
MinSet: true,
|
||||
Min: 1,
|
||||
MaxSet: true,
|
||||
Max: 2550,
|
||||
Max: 3000,
|
||||
MinExclusive: false,
|
||||
MaxExclusive: false,
|
||||
MultipleOfSet: false,
|
||||
|
@ -485,6 +485,7 @@ func (s *CreateGroupReq) SetUsers(val []int) {
|
||||
type CreateUserReq struct {
|
||||
Username string `json:"username"`
|
||||
Did OptString `json:"did"`
|
||||
Token OptString `json:"token"`
|
||||
Password string `json:"password"`
|
||||
CreatedAt OptDateTime `json:"created_at"`
|
||||
UpdatedAt OptDateTime `json:"updated_at"`
|
||||
@ -502,6 +503,11 @@ func (s *CreateUserReq) GetDid() OptString {
|
||||
return s.Did
|
||||
}
|
||||
|
||||
// GetToken returns the value of Token.
|
||||
func (s *CreateUserReq) GetToken() OptString {
|
||||
return s.Token
|
||||
}
|
||||
|
||||
// GetPassword returns the value of Password.
|
||||
func (s *CreateUserReq) GetPassword() string {
|
||||
return s.Password
|
||||
@ -537,6 +543,11 @@ func (s *CreateUserReq) SetDid(val OptString) {
|
||||
s.Did = val
|
||||
}
|
||||
|
||||
// SetToken sets the value of Token.
|
||||
func (s *CreateUserReq) SetToken(val OptString) {
|
||||
s.Token = val
|
||||
}
|
||||
|
||||
// SetPassword sets the value of Password.
|
||||
func (s *CreateUserReq) SetPassword(val string) {
|
||||
s.Password = val
|
||||
@ -1178,11 +1189,17 @@ func (s *UpdateGroupReq) SetUsers(val []int) {
|
||||
}
|
||||
|
||||
type UpdateUserReq struct {
|
||||
Token OptString `json:"token"`
|
||||
UpdatedAt OptDateTime `json:"updated_at"`
|
||||
Next OptString `json:"next"`
|
||||
Card []int `json:"card"`
|
||||
}
|
||||
|
||||
// GetToken returns the value of Token.
|
||||
func (s *UpdateUserReq) GetToken() OptString {
|
||||
return s.Token
|
||||
}
|
||||
|
||||
// GetUpdatedAt returns the value of UpdatedAt.
|
||||
func (s *UpdateUserReq) GetUpdatedAt() OptDateTime {
|
||||
return s.UpdatedAt
|
||||
@ -1198,6 +1215,11 @@ func (s *UpdateUserReq) GetCard() []int {
|
||||
return s.Card
|
||||
}
|
||||
|
||||
// SetToken sets the value of Token.
|
||||
func (s *UpdateUserReq) SetToken(val OptString) {
|
||||
s.Token = val
|
||||
}
|
||||
|
||||
// SetUpdatedAt sets the value of UpdatedAt.
|
||||
func (s *UpdateUserReq) SetUpdatedAt(val OptDateTime) {
|
||||
s.UpdatedAt = val
|
||||
|
@ -16,6 +16,8 @@ import (
|
||||
)
|
||||
|
||||
var password = os.Getenv("PASS")
|
||||
var token = os.Getenv("TOKEN")
|
||||
|
||||
var zero = "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
|
||||
// OgentHandler implements the ogen generated Handler interface and uses Ent as data layer.
|
||||
type OgentHandler struct {
|
||||
@ -536,6 +538,10 @@ func (h *OgentHandler) ReadUser(ctx context.Context, params ReadUserParams) (Rea
|
||||
// UpdateUser handles PATCH /users/{id} requests.
|
||||
func (h *OgentHandler) UpdateUser(ctx context.Context, req *UpdateUserReq, params UpdateUserParams) (UpdateUserRes, error) {
|
||||
b := h.client.User.UpdateOneID(params.ID)
|
||||
|
||||
if v, ok := req.Token.Get(); ok {
|
||||
if v == token {
|
||||
b.SetToken(v)
|
||||
// Add all fields.
|
||||
if v, ok := req.UpdatedAt.Get(); ok {
|
||||
b.SetUpdatedAt(v)
|
||||
@ -548,7 +554,10 @@ func (h *OgentHandler) UpdateUser(ctx context.Context, req *UpdateUserReq, param
|
||||
b.ClearCard().AddCardIDs(req.Card...)
|
||||
}
|
||||
// Persist to storage.
|
||||
}
|
||||
}
|
||||
e, err := b.Save(ctx)
|
||||
|
||||
if err != nil {
|
||||
switch {
|
||||
case ent.IsNotFound(err):
|
||||
|
@ -30,7 +30,7 @@
|
||||
"description": "item count to render per page",
|
||||
"schema": {
|
||||
"type": "integer",
|
||||
"maximum": 25500,
|
||||
"maximum": 3000,
|
||||
"minimum": 1
|
||||
}
|
||||
}
|
||||
@ -366,7 +366,7 @@
|
||||
"description": "item count to render per page",
|
||||
"schema": {
|
||||
"type": "integer",
|
||||
"maximum": 2550,
|
||||
"maximum": 3000,
|
||||
"minimum": 1
|
||||
}
|
||||
}
|
||||
@ -692,7 +692,7 @@
|
||||
"description": "item count to render per page",
|
||||
"schema": {
|
||||
"type": "integer",
|
||||
"maximum": 2550,
|
||||
"maximum": 3000,
|
||||
"minimum": 1
|
||||
}
|
||||
}
|
||||
@ -745,6 +745,9 @@
|
||||
"did": {
|
||||
"type": "string"
|
||||
},
|
||||
"token": {
|
||||
"type": "string"
|
||||
},
|
||||
"password": {
|
||||
"type": "string"
|
||||
},
|
||||
@ -903,6 +906,9 @@
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"token": {
|
||||
"type": "string"
|
||||
},
|
||||
"updated_at": {
|
||||
"type": "string",
|
||||
"format": "date-time"
|
||||
@ -1338,6 +1344,9 @@
|
||||
"did": {
|
||||
"type": "string"
|
||||
},
|
||||
"token": {
|
||||
"type": "string"
|
||||
},
|
||||
"password": {
|
||||
"type": "string"
|
||||
},
|
||||
|
@ -67,19 +67,19 @@ func init() {
|
||||
}
|
||||
}()
|
||||
// userDescPassword is the schema descriptor for password field.
|
||||
userDescPassword := userFields[2].Descriptor()
|
||||
userDescPassword := userFields[3].Descriptor()
|
||||
// user.PasswordValidator is a validator for the "password" field. It is called by the builders before save.
|
||||
user.PasswordValidator = userDescPassword.Validators[0].(func(string) error)
|
||||
// userDescCreatedAt is the schema descriptor for created_at field.
|
||||
userDescCreatedAt := userFields[3].Descriptor()
|
||||
userDescCreatedAt := userFields[4].Descriptor()
|
||||
// user.DefaultCreatedAt holds the default value on creation for the created_at field.
|
||||
user.DefaultCreatedAt = userDescCreatedAt.Default.(func() time.Time)
|
||||
// userDescUpdatedAt is the schema descriptor for updated_at field.
|
||||
userDescUpdatedAt := userFields[4].Descriptor()
|
||||
userDescUpdatedAt := userFields[5].Descriptor()
|
||||
// user.DefaultUpdatedAt holds the default value on creation for the updated_at field.
|
||||
user.DefaultUpdatedAt = userDescUpdatedAt.Default.(func() time.Time)
|
||||
// userDescNext is the schema descriptor for next field.
|
||||
userDescNext := userFields[5].Descriptor()
|
||||
userDescNext := userFields[6].Descriptor()
|
||||
// user.DefaultNext holds the default value on creation for the next field.
|
||||
user.DefaultNext = userDescNext.Default.(string)
|
||||
}
|
||||
|
@ -39,6 +39,10 @@ func (User) Fields() []ent.Field {
|
||||
Optional().
|
||||
Immutable(),
|
||||
|
||||
field.String("token").
|
||||
Optional().
|
||||
Sensitive(),
|
||||
|
||||
field.String("password").
|
||||
NotEmpty().
|
||||
Immutable().
|
||||
|
12
ent/user.go
12
ent/user.go
@ -20,6 +20,8 @@ type User struct {
|
||||
Username string `json:"username,omitempty"`
|
||||
// Did holds the value of the "did" field.
|
||||
Did string `json:"did,omitempty"`
|
||||
// Token holds the value of the "token" field.
|
||||
Token string `json:"-"`
|
||||
// Password holds the value of the "password" field.
|
||||
Password string `json:"-"`
|
||||
// CreatedAt holds the value of the "created_at" field.
|
||||
@ -59,7 +61,7 @@ func (*User) scanValues(columns []string) ([]any, error) {
|
||||
switch columns[i] {
|
||||
case user.FieldID:
|
||||
values[i] = new(sql.NullInt64)
|
||||
case user.FieldUsername, user.FieldDid, user.FieldPassword, user.FieldNext:
|
||||
case user.FieldUsername, user.FieldDid, user.FieldToken, user.FieldPassword, user.FieldNext:
|
||||
values[i] = new(sql.NullString)
|
||||
case user.FieldCreatedAt, user.FieldUpdatedAt:
|
||||
values[i] = new(sql.NullTime)
|
||||
@ -98,6 +100,12 @@ func (u *User) assignValues(columns []string, values []any) error {
|
||||
} else if value.Valid {
|
||||
u.Did = value.String
|
||||
}
|
||||
case user.FieldToken:
|
||||
if value, ok := values[i].(*sql.NullString); !ok {
|
||||
return fmt.Errorf("unexpected type %T for field token", values[i])
|
||||
} else if value.Valid {
|
||||
u.Token = value.String
|
||||
}
|
||||
case user.FieldPassword:
|
||||
if value, ok := values[i].(*sql.NullString); !ok {
|
||||
return fmt.Errorf("unexpected type %T for field password", values[i])
|
||||
@ -168,6 +176,8 @@ func (u *User) String() string {
|
||||
builder.WriteString("did=")
|
||||
builder.WriteString(u.Did)
|
||||
builder.WriteString(", ")
|
||||
builder.WriteString("token=<sensitive>")
|
||||
builder.WriteString(", ")
|
||||
builder.WriteString("password=<sensitive>")
|
||||
builder.WriteString(", ")
|
||||
builder.WriteString("created_at=")
|
||||
|
@ -15,6 +15,8 @@ const (
|
||||
FieldUsername = "username"
|
||||
// FieldDid holds the string denoting the did field in the database.
|
||||
FieldDid = "did"
|
||||
// FieldToken holds the string denoting the token field in the database.
|
||||
FieldToken = "token"
|
||||
// FieldPassword holds the string denoting the password field in the database.
|
||||
FieldPassword = "password"
|
||||
// FieldCreatedAt holds the string denoting the created_at field in the database.
|
||||
@ -41,6 +43,7 @@ var Columns = []string{
|
||||
FieldID,
|
||||
FieldUsername,
|
||||
FieldDid,
|
||||
FieldToken,
|
||||
FieldPassword,
|
||||
FieldCreatedAt,
|
||||
FieldUpdatedAt,
|
||||
|
@ -65,6 +65,11 @@ func Did(v string) predicate.User {
|
||||
return predicate.User(sql.FieldEQ(FieldDid, v))
|
||||
}
|
||||
|
||||
// Token applies equality check predicate on the "token" field. It's identical to TokenEQ.
|
||||
func Token(v string) predicate.User {
|
||||
return predicate.User(sql.FieldEQ(FieldToken, v))
|
||||
}
|
||||
|
||||
// Password applies equality check predicate on the "password" field. It's identical to PasswordEQ.
|
||||
func Password(v string) predicate.User {
|
||||
return predicate.User(sql.FieldEQ(FieldPassword, v))
|
||||
@ -225,6 +230,81 @@ func DidContainsFold(v string) predicate.User {
|
||||
return predicate.User(sql.FieldContainsFold(FieldDid, v))
|
||||
}
|
||||
|
||||
// TokenEQ applies the EQ predicate on the "token" field.
|
||||
func TokenEQ(v string) predicate.User {
|
||||
return predicate.User(sql.FieldEQ(FieldToken, v))
|
||||
}
|
||||
|
||||
// TokenNEQ applies the NEQ predicate on the "token" field.
|
||||
func TokenNEQ(v string) predicate.User {
|
||||
return predicate.User(sql.FieldNEQ(FieldToken, v))
|
||||
}
|
||||
|
||||
// TokenIn applies the In predicate on the "token" field.
|
||||
func TokenIn(vs ...string) predicate.User {
|
||||
return predicate.User(sql.FieldIn(FieldToken, vs...))
|
||||
}
|
||||
|
||||
// TokenNotIn applies the NotIn predicate on the "token" field.
|
||||
func TokenNotIn(vs ...string) predicate.User {
|
||||
return predicate.User(sql.FieldNotIn(FieldToken, vs...))
|
||||
}
|
||||
|
||||
// TokenGT applies the GT predicate on the "token" field.
|
||||
func TokenGT(v string) predicate.User {
|
||||
return predicate.User(sql.FieldGT(FieldToken, v))
|
||||
}
|
||||
|
||||
// TokenGTE applies the GTE predicate on the "token" field.
|
||||
func TokenGTE(v string) predicate.User {
|
||||
return predicate.User(sql.FieldGTE(FieldToken, v))
|
||||
}
|
||||
|
||||
// TokenLT applies the LT predicate on the "token" field.
|
||||
func TokenLT(v string) predicate.User {
|
||||
return predicate.User(sql.FieldLT(FieldToken, v))
|
||||
}
|
||||
|
||||
// TokenLTE applies the LTE predicate on the "token" field.
|
||||
func TokenLTE(v string) predicate.User {
|
||||
return predicate.User(sql.FieldLTE(FieldToken, v))
|
||||
}
|
||||
|
||||
// TokenContains applies the Contains predicate on the "token" field.
|
||||
func TokenContains(v string) predicate.User {
|
||||
return predicate.User(sql.FieldContains(FieldToken, v))
|
||||
}
|
||||
|
||||
// TokenHasPrefix applies the HasPrefix predicate on the "token" field.
|
||||
func TokenHasPrefix(v string) predicate.User {
|
||||
return predicate.User(sql.FieldHasPrefix(FieldToken, v))
|
||||
}
|
||||
|
||||
// TokenHasSuffix applies the HasSuffix predicate on the "token" field.
|
||||
func TokenHasSuffix(v string) predicate.User {
|
||||
return predicate.User(sql.FieldHasSuffix(FieldToken, v))
|
||||
}
|
||||
|
||||
// TokenIsNil applies the IsNil predicate on the "token" field.
|
||||
func TokenIsNil() predicate.User {
|
||||
return predicate.User(sql.FieldIsNull(FieldToken))
|
||||
}
|
||||
|
||||
// TokenNotNil applies the NotNil predicate on the "token" field.
|
||||
func TokenNotNil() predicate.User {
|
||||
return predicate.User(sql.FieldNotNull(FieldToken))
|
||||
}
|
||||
|
||||
// TokenEqualFold applies the EqualFold predicate on the "token" field.
|
||||
func TokenEqualFold(v string) predicate.User {
|
||||
return predicate.User(sql.FieldEqualFold(FieldToken, v))
|
||||
}
|
||||
|
||||
// TokenContainsFold applies the ContainsFold predicate on the "token" field.
|
||||
func TokenContainsFold(v string) predicate.User {
|
||||
return predicate.User(sql.FieldContainsFold(FieldToken, v))
|
||||
}
|
||||
|
||||
// PasswordEQ applies the EQ predicate on the "password" field.
|
||||
func PasswordEQ(v string) predicate.User {
|
||||
return predicate.User(sql.FieldEQ(FieldPassword, v))
|
||||
|
@ -41,6 +41,20 @@ func (uc *UserCreate) SetNillableDid(s *string) *UserCreate {
|
||||
return uc
|
||||
}
|
||||
|
||||
// SetToken sets the "token" field.
|
||||
func (uc *UserCreate) SetToken(s string) *UserCreate {
|
||||
uc.mutation.SetToken(s)
|
||||
return uc
|
||||
}
|
||||
|
||||
// SetNillableToken sets the "token" field if the given value is not nil.
|
||||
func (uc *UserCreate) SetNillableToken(s *string) *UserCreate {
|
||||
if s != nil {
|
||||
uc.SetToken(*s)
|
||||
}
|
||||
return uc
|
||||
}
|
||||
|
||||
// SetPassword sets the "password" field.
|
||||
func (uc *UserCreate) SetPassword(s string) *UserCreate {
|
||||
uc.mutation.SetPassword(s)
|
||||
@ -205,6 +219,10 @@ func (uc *UserCreate) createSpec() (*User, *sqlgraph.CreateSpec) {
|
||||
_spec.SetField(user.FieldDid, field.TypeString, value)
|
||||
_node.Did = value
|
||||
}
|
||||
if value, ok := uc.mutation.Token(); ok {
|
||||
_spec.SetField(user.FieldToken, field.TypeString, value)
|
||||
_node.Token = value
|
||||
}
|
||||
if value, ok := uc.mutation.Password(); ok {
|
||||
_spec.SetField(user.FieldPassword, field.TypeString, value)
|
||||
_node.Password = value
|
||||
|
@ -29,6 +29,26 @@ func (uu *UserUpdate) Where(ps ...predicate.User) *UserUpdate {
|
||||
return uu
|
||||
}
|
||||
|
||||
// SetToken sets the "token" field.
|
||||
func (uu *UserUpdate) SetToken(s string) *UserUpdate {
|
||||
uu.mutation.SetToken(s)
|
||||
return uu
|
||||
}
|
||||
|
||||
// SetNillableToken sets the "token" field if the given value is not nil.
|
||||
func (uu *UserUpdate) SetNillableToken(s *string) *UserUpdate {
|
||||
if s != nil {
|
||||
uu.SetToken(*s)
|
||||
}
|
||||
return uu
|
||||
}
|
||||
|
||||
// ClearToken clears the value of the "token" field.
|
||||
func (uu *UserUpdate) ClearToken() *UserUpdate {
|
||||
uu.mutation.ClearToken()
|
||||
return uu
|
||||
}
|
||||
|
||||
// SetUpdatedAt sets the "updated_at" field.
|
||||
func (uu *UserUpdate) SetUpdatedAt(t time.Time) *UserUpdate {
|
||||
uu.mutation.SetUpdatedAt(t)
|
||||
@ -149,6 +169,12 @@ func (uu *UserUpdate) sqlSave(ctx context.Context) (n int, err error) {
|
||||
if uu.mutation.DidCleared() {
|
||||
_spec.ClearField(user.FieldDid, field.TypeString)
|
||||
}
|
||||
if value, ok := uu.mutation.Token(); ok {
|
||||
_spec.SetField(user.FieldToken, field.TypeString, value)
|
||||
}
|
||||
if uu.mutation.TokenCleared() {
|
||||
_spec.ClearField(user.FieldToken, field.TypeString)
|
||||
}
|
||||
if uu.mutation.CreatedAtCleared() {
|
||||
_spec.ClearField(user.FieldCreatedAt, field.TypeTime)
|
||||
}
|
||||
@ -229,6 +255,26 @@ type UserUpdateOne struct {
|
||||
mutation *UserMutation
|
||||
}
|
||||
|
||||
// SetToken sets the "token" field.
|
||||
func (uuo *UserUpdateOne) SetToken(s string) *UserUpdateOne {
|
||||
uuo.mutation.SetToken(s)
|
||||
return uuo
|
||||
}
|
||||
|
||||
// SetNillableToken sets the "token" field if the given value is not nil.
|
||||
func (uuo *UserUpdateOne) SetNillableToken(s *string) *UserUpdateOne {
|
||||
if s != nil {
|
||||
uuo.SetToken(*s)
|
||||
}
|
||||
return uuo
|
||||
}
|
||||
|
||||
// ClearToken clears the value of the "token" field.
|
||||
func (uuo *UserUpdateOne) ClearToken() *UserUpdateOne {
|
||||
uuo.mutation.ClearToken()
|
||||
return uuo
|
||||
}
|
||||
|
||||
// SetUpdatedAt sets the "updated_at" field.
|
||||
func (uuo *UserUpdateOne) SetUpdatedAt(t time.Time) *UserUpdateOne {
|
||||
uuo.mutation.SetUpdatedAt(t)
|
||||
@ -379,6 +425,12 @@ func (uuo *UserUpdateOne) sqlSave(ctx context.Context) (_node *User, err error)
|
||||
if uuo.mutation.DidCleared() {
|
||||
_spec.ClearField(user.FieldDid, field.TypeString)
|
||||
}
|
||||
if value, ok := uuo.mutation.Token(); ok {
|
||||
_spec.SetField(user.FieldToken, field.TypeString, value)
|
||||
}
|
||||
if uuo.mutation.TokenCleared() {
|
||||
_spec.ClearField(user.FieldToken, field.TypeString)
|
||||
}
|
||||
if uuo.mutation.CreatedAtCleared() {
|
||||
_spec.ClearField(user.FieldCreatedAt, field.TypeTime)
|
||||
}
|
||||
|
@ -8,7 +8,7 @@ $ go build
|
||||
$ ./card
|
||||
|
||||
$ go generate ./...
|
||||
$ go run -mod=mod main.go
|
||||
$ PASS=`cat ./token.json|jq -r .password` TOKEN=`cat ./token.json|jq -r .token` go run -mod=mod main.go
|
||||
$ curl -X POST -H "Content-Type: application/json" -d "{\"username\":\"syui\",\"password\":\"$pass\"}" localhost:8080/users
|
||||
$ curl -X POST -H "Content-Type: application/json" -d "{\"owner\":1,\"password\":\"$pass\"}" localhost:8080/cards
|
||||
$ curl -X POST -H "Content-Type: application/json" -d "{\"owner\":1,\"card\":1,\"cp\":11,\"status\":\"normal\",\"password\":\"$pass\"}" localhost:8080/cards
|
||||
|
@ -3,7 +3,7 @@
|
||||
host=https://api.syui.ai
|
||||
api=localhost:8080
|
||||
|
||||
host_users="$host/users?itemsPerPage=255"
|
||||
host_users="$host/users?itemsPerPage=2550"
|
||||
d=${0:a:h}
|
||||
dd=${0:a:h:h}
|
||||
pass=`cat $dd/token.json|jq -r .password`
|
||||
@ -43,22 +43,14 @@ do
|
||||
|
||||
name=`echo $data|jq ".[$i]"|jq -r .username`
|
||||
id=`echo $data|jq ".[$i]"|jq -r .id`
|
||||
if [ "$1" = "-s" ];then
|
||||
did
|
||||
else
|
||||
did=`cat $d/user.json|jq -r ".[]|select(.name == \"$name\")|.did"`
|
||||
fi
|
||||
did=`echo $data|jq ".[$i]"|jq -r .did`
|
||||
|
||||
echo "{\"username\":\"$name\", \"password\":\"$pass\",\"did\":\"$did\"} localhost:8080/users"
|
||||
#if [ "$did" = "null" ];then
|
||||
# echo "{\"username\":\"$name\", \"password\":\"$pass\",\"did\":\"$did\"} localhost:8080/users"
|
||||
#else
|
||||
# echo "{\"username\":\"$name\", \"password\":\"$pass\"} localhost:8080/users"
|
||||
#fi
|
||||
if [ "$1" = "-a" ];then
|
||||
l_users
|
||||
fi
|
||||
|
||||
data_card=`curl -sL "$host/users/$id/card?itemsPerPage=255"`
|
||||
data_card=`curl -sL "$host/users/$id/card?itemsPerPage=2550"`
|
||||
nn=`echo $data_card|jq length`
|
||||
nn=$((nn - 1))
|
||||
|
||||
|
@ -459,7 +459,7 @@ func decodeListCardParams(args [0]string, r *http.Request) (params ListCardParam
|
||||
MinSet: true,
|
||||
Min: 1,
|
||||
MaxSet: true,
|
||||
Max: 25500,
|
||||
Max: 3000,
|
||||
MinExclusive: false,
|
||||
MaxExclusive: false,
|
||||
MultipleOfSet: false,
|
||||
@ -624,7 +624,7 @@ func decodeListGroupParams(args [0]string, r *http.Request) (params ListGroupPar
|
||||
MinSet: true,
|
||||
Min: 1,
|
||||
MaxSet: true,
|
||||
Max: 2550,
|
||||
Max: 3000,
|
||||
MinExclusive: false,
|
||||
MaxExclusive: false,
|
||||
MultipleOfSet: false,
|
||||
@ -956,7 +956,7 @@ func decodeListUserParams(args [0]string, r *http.Request) (params ListUserParam
|
||||
MinSet: true,
|
||||
Min: 1,
|
||||
MaxSet: true,
|
||||
Max: 2550,
|
||||
Max: 3000,
|
||||
MinExclusive: false,
|
||||
MaxExclusive: false,
|
||||
MultipleOfSet: false,
|
||||
|
@ -16,6 +16,8 @@ import (
|
||||
)
|
||||
|
||||
var password = os.Getenv("PASS")
|
||||
var token = os.Getenv("TOKEN")
|
||||
|
||||
var zero = "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
|
||||
// OgentHandler implements the ogen generated Handler interface and uses Ent as data layer.
|
||||
type OgentHandler struct {
|
||||
@ -536,6 +538,10 @@ func (h *OgentHandler) ReadUser(ctx context.Context, params ReadUserParams) (Rea
|
||||
// UpdateUser handles PATCH /users/{id} requests.
|
||||
func (h *OgentHandler) UpdateUser(ctx context.Context, req *UpdateUserReq, params UpdateUserParams) (UpdateUserRes, error) {
|
||||
b := h.client.User.UpdateOneID(params.ID)
|
||||
|
||||
if v, ok := req.Token.Get(); ok {
|
||||
if v == token {
|
||||
b.SetToken(v)
|
||||
// Add all fields.
|
||||
if v, ok := req.UpdatedAt.Get(); ok {
|
||||
b.SetUpdatedAt(v)
|
||||
@ -548,7 +554,10 @@ func (h *OgentHandler) UpdateUser(ctx context.Context, req *UpdateUserReq, param
|
||||
b.ClearCard().AddCardIDs(req.Card...)
|
||||
}
|
||||
// Persist to storage.
|
||||
}
|
||||
}
|
||||
e, err := b.Save(ctx)
|
||||
|
||||
if err != nil {
|
||||
switch {
|
||||
case ent.IsNotFound(err):
|
||||
|
Loading…
Reference in New Issue
Block a user