Files
phishingclub/backend/seed/identifier.go
2025-08-21 16:14:09 +02:00

68 lines
2.1 KiB
Go

package seed
import (
"context"
"github.com/go-errors/errors"
"github.com/oapi-codegen/nullable"
"github.com/phishingclub/phishingclub/errs"
"github.com/phishingclub/phishingclub/model"
"github.com/phishingclub/phishingclub/repository"
"gorm.io/gorm"
)
func SeedIdentifiers(
db *gorm.DB,
identifierRepository *repository.Identifier,
) error {
ids := []model.Identifier{
{Name: nullable.NewNullableWithValue("action")},
{Name: nullable.NewNullableWithValue("category")},
{Name: nullable.NewNullableWithValue("categoryId")},
{Name: nullable.NewNullableWithValue("context")},
{Name: nullable.NewNullableWithValue("data")},
{Name: nullable.NewNullableWithValue("filter")},
{Name: nullable.NewNullableWithValue("id")},
{Name: nullable.NewNullableWithValue("item")},
{Name: nullable.NewNullableWithValue("key")},
{Name: nullable.NewNullableWithValue("p")},
{Name: nullable.NewNullableWithValue("page")},
{Name: nullable.NewNullableWithValue("pageId")},
{Name: nullable.NewNullableWithValue("param")},
{Name: nullable.NewNullableWithValue("q")},
{Name: nullable.NewNullableWithValue("ref")},
{Name: nullable.NewNullableWithValue("s")},
{Name: nullable.NewNullableWithValue("search")},
{Name: nullable.NewNullableWithValue("session")},
{Name: nullable.NewNullableWithValue("sessionId")},
{Name: nullable.NewNullableWithValue("state")},
{Name: nullable.NewNullableWithValue("state")},
{Name: nullable.NewNullableWithValue("token")},
{Name: nullable.NewNullableWithValue("type")},
{Name: nullable.NewNullableWithValue("url")},
{Name: nullable.NewNullableWithValue("userId")},
}
for _, identifier := range ids {
// check if the entry already exists
m, err := identifierRepository.GetByName(
context.Background(),
identifier.Name.MustGet(),
)
if err != nil && !errors.Is(err, gorm.ErrRecordNotFound) {
return errors.Errorf("%w: %s", errs.ErrDBSeedFailure, err)
}
if m != nil {
continue
}
_, err = identifierRepository.Insert(
context.Background(),
&identifier,
)
if err != nil {
return errors.Errorf("%w: %s", errs.ErrDBSeedFailure, err)
}
}
return nil
}