fix: CreateIdentityProvider without id (#2352)

This commit is contained in:
Athurg Gooth 2023-10-08 18:28:22 +08:00 committed by GitHub
parent b2aa66b4fd
commit c0619ef4a4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 20 additions and 29 deletions

View File

@ -22,15 +22,16 @@ func (d *DB) CreateIdentityProvider(ctx context.Context, create *store.IdentityP
return nil, errors.Errorf("unsupported idp type %s", string(create.Type)) return nil, errors.Errorf("unsupported idp type %s", string(create.Type))
} }
stmt := "INSERT INTO `idp` (`name`, `type`, `identifier_filter`, `config`) VALUES (?, ?, ?, ?)" placeholders := []string{"?", "?", "?", "?"}
result, err := d.db.ExecContext( fields := []string{"`name`", "`type`", "`identifier_filter`", "`config`"}
ctx, args := []any{create.Name, create.Type, create.IdentifierFilter, string(configBytes)}
stmt,
create.Name, if create.ID != 0 {
create.Type, fields, placeholders, args = append(fields, "`id`"), append(placeholders, "?"), append(args, create.ID)
create.IdentifierFilter, }
string(configBytes),
) stmt := "INSERT INTO `idp` (" + strings.Join(fields, ", ") + ") VALUES (" + strings.Join(placeholders, ", ") + ")"
result, err := d.db.ExecContext(ctx, stmt, args...)
if err != nil { if err != nil {
return nil, err return nil, err
} }

View File

@ -23,26 +23,16 @@ func (d *DB) CreateIdentityProvider(ctx context.Context, create *store.IdentityP
return nil, errors.Errorf("unsupported idp type %s", string(create.Type)) return nil, errors.Errorf("unsupported idp type %s", string(create.Type))
} }
stmt := ` placeholders := []string{"?", "?", "?", "?"}
INSERT INTO idp ( fields := []string{"`name`", "`type`", "`identifier_filter`", "`config`"}
name, args := []any{create.Name, create.Type, create.IdentifierFilter, string(configBytes)}
type,
identifier_filter, if create.ID != 0 {
config fields, placeholders, args = append(fields, "`id`"), append(placeholders, "?"), append(args, create.ID)
) }
VALUES (?, ?, ?, ?)
RETURNING id stmt := "INSERT INTO `idp` (" + strings.Join(fields, ", ") + ") VALUES (" + strings.Join(placeholders, ", ") + ") RETURNING `id`"
` if err := d.db.QueryRowContext(ctx, stmt, args...).Scan(&create.ID); err != nil {
if err := d.db.QueryRowContext(
ctx,
stmt,
create.Name,
create.Type,
create.IdentifierFilter,
string(configBytes),
).Scan(
&create.ID,
); err != nil {
return nil, err return nil, err
} }