98 lines
1.9 KiB
Plaintext
98 lines
1.9 KiB
Plaintext
|
package repository_{name}
|
||
|
|
||
|
import (
|
||
|
"context"
|
||
|
"online-order/ent"
|
||
|
"online-order/ent/{name}"
|
||
|
"online-order/entity"
|
||
|
)
|
||
|
|
||
|
type {Name}Repository struct {
|
||
|
client *ent.Client
|
||
|
activeBusiness *entity.ActiveBusiness
|
||
|
}
|
||
|
|
||
|
func New{Name}Repository(client *ent.Client, activeBusiness *entity.ActiveBusiness) *{Name}Repository {
|
||
|
return &{Name}Repository{
|
||
|
client: client,
|
||
|
activeBusiness: activeBusiness,
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// List all {name}s
|
||
|
func (c *{Name}Repository) List() ([]*entity.{Name}Display, error) {
|
||
|
var u []*entity.{Name}Display
|
||
|
ctx := context.Background()
|
||
|
|
||
|
err := c.client.{Name}.
|
||
|
Query().
|
||
|
Where({name}.BusinessID(c.activeBusiness.BusinessID)).
|
||
|
Select({name}.FieldID, {name}.FieldCreatedAt, {name}.FieldUpdatedAt).
|
||
|
Scan(ctx, &u)
|
||
|
|
||
|
if err != nil {
|
||
|
return nil, err
|
||
|
}
|
||
|
|
||
|
return u, nil
|
||
|
}
|
||
|
|
||
|
// Create a {name}
|
||
|
func (c *{Name}Repository) Create(p *entity.{Name}CreateUpdate) error {
|
||
|
ctx := context.Background()
|
||
|
|
||
|
resp, err := c.client.{Name}.
|
||
|
Create().
|
||
|
SetBusinessID(c.activeBusiness.BusinessID).
|
||
|
SetUserID(p.UserID).
|
||
|
Save(ctx)
|
||
|
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
func (c *{Name}Repository) GetByID(id int) (*entity.{Name}Display, error) {
|
||
|
var p entity.{Name}Display
|
||
|
ctx := context.Background()
|
||
|
|
||
|
resp := c.client.{Name}.
|
||
|
Query().
|
||
|
Where({name}.BusinessID(c.activeBusiness.BusinessID)).
|
||
|
Where({name}.ID(id)).
|
||
|
AllX(ctx)
|
||
|
|
||
|
if len(resp) > 0 {
|
||
|
p.ID = resp[0].ID
|
||
|
p.CreatedAt = resp[0].CreatedAt
|
||
|
p.UpdatedAt = resp[0].UpdatedAt
|
||
|
} else {
|
||
|
return nil, entity.ErrNotFound
|
||
|
}
|
||
|
|
||
|
return &p, nil
|
||
|
}
|
||
|
|
||
|
// Update {name} information
|
||
|
func (c *{Name}Repository) Update(p *entity.{Name}CreateUpdate) error {
|
||
|
ctx := context.Background()
|
||
|
|
||
|
_, err := c.client.{Name}.UpdateOneID(p.ID).
|
||
|
Save(ctx)
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
// Update user information, except password
|
||
|
func (c *{Name}Repository) Delete(id int) error {
|
||
|
ctx := context.Background()
|
||
|
|
||
|
err := c.client.{Name}.
|
||
|
DeleteOneID(id).
|
||
|
Exec(ctx)
|
||
|
return err
|
||
|
}
|