This repository has been archived on 2025-03-16. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
crudgen/internal/raw_templates.go

63 lines
2.1 KiB
Go

package internal
const CreateRawTemplate = `func (service *{{.ServiceName}}) Create(item {{.EntityType}}) ({{.EntityType}}, error) {
utils.ReplaceEmptySlicesWithNil(&item)
err := dal.Author.Create(&item)
if err != nil {
return item, err
}
err = utils.AppendAssociations(database.GetInstance(), &item)
return item, err
}`
const GetAllRawTemplate = `func (service *{{.ServiceName}}) GetAll() ([]*{{.EntityType}}, error) {
var {{.EntityPlural}} []*{{.EntityType}}
{{.EntityPlural}}, err := dal.{{.EntityType}}.Preload(field.Associations).Find()
return {{.EntityPlural}}, err
}`
const GetByIdRawTemplate = `func (service *{{.ServiceName}}) GetById(id uint) (*{{.EntityType}}, error) {
item, err := dal.{{.EntityType}}.Preload(field.Associations).Where(dal.{{.EntityType}}.Id.Eq(id)).First()
if err != nil {
if errors.Is(err, gorm.ErrRecordNotFound) {
return nil, nil
} else {
return nil, err
}
}
return item, nil
}`
const UpdateRawTemplate = `func (service *{{.ServiceName}}) Update(item {{.EntityType}}) ({{.EntityType}}, error) {
utils.ReplaceEmptySlicesWithNil(&item)
_, err := dal.Author.Updates(&item)
if err != nil {
return item, err
}
err = utils.UpdateAssociations(database.GetInstance(), &item)
if err != nil {
return item, err
}
return item, err
}`
const DeleteRawTemplate = `func (service *{{.ServiceName}}) Delete(id uint) error {
_, err := dal.{{.EntityType}}.Unscoped().Where(dal.{{.EntityType}}.Id.Eq(id)).Delete()
return err
}`
const CountRawTemplate = `func (service *{{.ServiceName}}) Count() (int64, error) {
amount, err := dal.{{.EntityType}}.Count()
return amount, err
}`
const SortedByOrderTemplate = `func (service *{{.ServiceName}}) SortedByOrder(fieldsSortOrder map[string]string) ([]*{{.EntityType}}, error) {
return utils.SortByOrder(fieldsSortOrder, {{.EntityType}}{})
}`
var implementedMethods = []string{CreateMethod, GetAllMethod, GetByIdMethod, UpdateMethod, DeleteMethod, CountMethod, SortedByOrderMethod}