3
0

upd(crm): return fields from content list/read, tests

This commit is contained in:
Tit Petric
2018-11-15 15:18:17 +01:00
parent fc654d5880
commit 6e8591ec8f
3 changed files with 33 additions and 11 deletions
+15 -3
View File
@@ -64,7 +64,7 @@ func (r *content) FindByID(id uint64) (*types.Content, error) {
if err := r.db().Get(mod, "SELECT * FROM crm_content WHERE id=? and deleted_at IS NULL", id); err != nil {
return nil, err
}
return mod, r.prepare(mod, "page", "user")
return mod, r.prepare(mod, "page", "user", "fields")
}
func (r *content) Find(moduleID uint64, query string, page int, perPage int) (*FindResponse, error) {
@@ -116,7 +116,7 @@ func (r *content) Find(moduleID uint64, query string, page int, perPage int) (*F
}
}
if err := r.prepareAll(response.Contents, "user"); err != nil {
if err := r.prepareAll(response.Contents, "user", "fields"); err != nil {
return nil, err
}
@@ -144,7 +144,7 @@ func (r *content) Create(mod *types.Content) (*types.Content, error) {
return nil, err
}
return mod, r.prepare(mod, "user")
return mod, r.prepare(mod, "user", "fields")
}
func (r *content) Update(mod *types.Content) (*types.Content, error) {
@@ -212,6 +212,18 @@ func (r *content) prepare(content *types.Content, fields ...string) (err error)
usersAPI := systemRepository.User(r.Context(), r.db())
for _, field := range fields {
switch field {
case "fields":
fields, err := r.Fields(content)
if err != nil {
return err
}
json, err := json.Marshal(fields)
if err != nil {
return err
}
if err := (&content.Fields).Scan(json); err != nil {
return err
}
case "page":
if content.Page, err = api.FindByModuleID(content.ModuleID); err != nil {
return
+17 -7
View File
@@ -89,13 +89,23 @@ func TestContent(t *testing.T) {
assert(t, ms.ID == m.ID, "Expected ID from database to match, %d != %d", m.ID, ms.ID)
assert(t, ms.ModuleID == m.ModuleID, "Expected Module ID from database to match, %d != %d", m.ModuleID, ms.ModuleID)
fields, err := repository.Fields(ms)
// fields := make([]testContentRow, 0)
// err = json.Unmarshal(ms.Fields, &fields)
assert(t, err == nil, "%+v", errors.Wrap(err, "Didn't expect error when unmarshalling"))
assert(t, len(fields) == 2, "Expected different field count: %d != %d", 2, len(fields))
assert(t, fields[0].Name == "name", "Expected field.0 type = name, got %s", fields[0].Name)
assert(t, fields[1].Name == "email", "Expected field.1 type = email, got %s", fields[1].Name)
{
fields, err := repository.Fields(ms)
// fields := make([]testContentRow, 0)
// err = json.Unmarshal(ms.Fields, &fields)
assert(t, err == nil, "%+v", errors.Wrap(err, "Didn't expect error when unmarshalling"))
assert(t, len(fields) == 2, "Expected different field count: %d != %d", 2, len(fields))
assert(t, fields[0].Name == "name", "Expected field.0 type = name, got %s", fields[0].Name)
assert(t, fields[1].Name == "email", "Expected field.1 type = email, got %s", fields[1].Name)
}
{
fields := make([]types.ContentColumn, 0)
err := json.Unmarshal(ms.Fields, &fields)
assert(t, err == nil, "%+v", errors.Wrap(err, "Didn't expect error when unmarshalling"))
assert(t, len(fields) == 2, "Expected different field count: %d != %d", 2, len(fields))
assert(t, fields[0].Name == "name", "Expected field.0 type = name, got %s", fields[0].Name)
assert(t, fields[1].Name == "email", "Expected field.1 type = email, got %s", fields[1].Name)
}
}
// update created content
+1 -1
View File
@@ -28,7 +28,7 @@ type (
// ContentColumn is a stored row in the `content_column` table
ContentColumn struct {
ContentID uint64 `json:"contentID,string" db:"content_id"`
ContentID uint64 `json:"-" db:"content_id"`
Name string `json:"name" db:"column_name"`
Value string `json:"value" db:"column_value"`
}