Skip to content

Commit 298763d

Browse files
committed
status + published columns
1 parent e5036e6 commit 298763d

16 files changed

Lines changed: 126 additions & 59 deletions

File tree

cmd/gfl/content.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -294,9 +294,8 @@ func GetContentTypeEntries(cli *gontentful.Client, contenType string) (*gontentf
294294
func GetAllEntries(cli *gontentful.Client) (*gontentful.Entries, error) {
295295
res := &gontentful.Entries{}
296296

297-
_, err := cli.Spaces.SyncPaged("", func(sr *gontentful.SyncResponse) error {
297+
_, err := cli.Spaces.SyncPaged("", func(sr *gontentful.SyncResponse) {
298298
res.Items = append(res.Items, sr.Items...)
299-
return nil
300299
})
301300
if err != nil {
302301
return nil, err

cmd/gfl/main.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ func init() {
3535
rootCmd.PersistentFlags().StringVarP(&cmaToken, "cma", "c", "", "cma token (required)")
3636
rootCmd.PersistentFlags().StringVarP(&databaseURL, "url", "u", "postgres://postgres@localhost:5432/?sslmode=disable", "database url")
3737
rootCmd.PersistentFlags().StringVarP(&schemaName, "schema", "n", "", "schema name")
38+
rootCmd.PersistentFlags().StringVarP(&environmentID, "environment", "e", "master", "cf environment")
3839
//rootCmd.MarkFlagRequired("space")
3940
//rootCmd.MarkFlagRequired("token")
4041
//rootCmd.MarkFlagRequired("cma")

cmd/gfl/sync_pg.go

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package main
22

33
import (
4-
"fmt"
54
"log"
65

76
"github.com/spf13/cobra"
@@ -57,9 +56,9 @@ var pgSyncCmd = &cobra.Command{
5756
}
5857
log.Println("sync done")
5958

60-
for _, i := range res.Items {
61-
fmt.Println(i.Sys.ID)
62-
}
59+
// for _, i := range res.Items {
60+
// fmt.Println(i.Sys.ID)
61+
// }
6362

6463
log.Println("get space...")
6564
space, err := client.Spaces.GetSpace()

cms_entries.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -290,10 +290,11 @@ func GetPublishedEntry(repo string, contentType string, files []string) (*Publis
290290
}
291291
if sys == nil {
292292
sys = &Sys{
293-
ID: data.ID,
294-
CreatedAt: data.CreatedAt,
295-
UpdatedAt: data.UpdatedAt,
296-
Version: data.Version,
293+
ID: data.ID,
294+
CreatedAt: data.CreatedAt,
295+
UpdatedAt: data.UpdatedAt,
296+
PublishedAt: data.PublishedAt,
297+
Version: data.Version,
297298
}
298299
}
299300
}

go.mod

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,3 +27,7 @@ require (
2727
google.golang.org/appengine v1.6.7 // indirect
2828
google.golang.org/protobuf v1.28.1 // indirect
2929
)
30+
31+
replace (
32+
github.com/moonwalker/moonbase => ../moonbase
33+
)

publish_pg.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,7 @@ func newPGPublishRow(sys *Sys, fieldColumns []string, fieldValues map[string]int
140140
FieldColumns: fieldColumns,
141141
FieldValues: fieldValues,
142142
Locale: locale,
143+
Status: sys.Status(),
143144
Version: sys.Version,
144145
CreatedAt: sys.CreatedAt,
145146
UpdatedAt: sys.UpdatedAt,
@@ -150,6 +151,11 @@ func newPGPublishRow(sys *Sys, fieldColumns []string, fieldValues map[string]int
150151
if len(row.UpdatedAt) == 0 {
151152
row.UpdatedAt = row.CreatedAt
152153
}
154+
if len(sys.PublishedAt) != 0 {
155+
row.PublishedAt = &sys.PublishedAt
156+
} else if sys.PublishedVersion > 0 {
157+
row.PublishedAt = &row.UpdatedAt
158+
}
153159
return row
154160
}
155161

publish_pg_tpl.go

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,35 +9,42 @@ INSERT INTO {{ $.SchemaName }}.{{ $.TableName }} (
99
{{ $v }},
1010
{{- end }}
1111
_locale,
12+
_status,
1213
_version,
1314
_created_at,
1415
_created_by,
1516
_updated_at,
16-
_updated_by
17+
_updated_by,
18+
_published_at,
19+
_published_by
1720
) VALUES (
1821
'{{ .SysID }}_{{ .Locale }}',
1922
'{{ .SysID }}',
2023
{{- range $k, $v := .FieldColumns }}
2124
{{ $item.GetFieldValue $v }},
2225
{{- end }}
2326
'{{ .Locale }}',
27+
'{{ .Status }}',
2428
'{{ .Version }}',
2529
to_timestamp('{{ .CreatedAt }}','YYYY-MM-DDThh24:mi:ss.usZ'),
2630
'sync',
2731
to_timestamp('{{ .UpdatedAt }}','YYYY-MM-DDThh24:mi:ss.usZ'),
28-
'sync'
32+
'sync',
33+
{{ if .PublishedAt }}to_timestamp('{{ .PublishedAt }}','YYYY-MM-DDThh24:mi:ss.mssZ'){{ else }}NULL{{ end }},
34+
'sync',
2935
)
3036
ON CONFLICT (_id) DO UPDATE
3137
SET
3238
{{- range $k, $v := .FieldColumns }}
3339
{{ $v }} = EXCLUDED.{{ $v }},
3440
{{- end }}
3541
_locale = EXCLUDED._locale,
36-
_version= EXCLUDED._version,
37-
_created_at=EXCLUDED._created_at,
38-
_created_by=EXCLUDED._created_by,
39-
_updated_at=EXCLUDED._updated_at,
40-
_updated_by=EXCLUDED._updated_by
42+
_status = EXCLUDED.status,
43+
_version = EXCLUDED._version,
44+
_updated_at = EXCLUDED._updated_at,
45+
_updated_by = EXCLUDED._updated_by,
46+
_published_at = EXCLUDED._published_at,
47+
_published_by = EXCLUDED._published_by
4148
;
4249
{{- end -}}
4350
{{ range $tblidx, $tbl := .DeletedConTables }}

schema_pg.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,11 +59,14 @@ type PGSQLData struct {
5959
Description string
6060
DisplayField string
6161
Fields []map[string]interface{}
62+
Status string
6263
Version int
6364
CreatedAt string
6465
CreatedBy string
6566
UpdatedAt string
6667
UpdatedBy string
68+
PublishedAt string
69+
PublishedBy string
6770
Metas []*PGSQLMeta
6871
}
6972

@@ -365,9 +368,11 @@ func makeModelData(item *ContentType) *PGSQLData {
365368
Label: formatText(item.Name),
366369
Description: formatText(item.Description),
367370
DisplayField: item.DisplayField,
368-
Version: item.Sys.Revision,
371+
Status: item.Sys.Status(),
372+
Version: item.Sys.Version,
369373
CreatedAt: item.Sys.CreatedAt,
370374
UpdatedAt: item.Sys.UpdatedAt,
375+
PublishedAt: item.Sys.PublishedAt,
371376
Metas: make([]*PGSQLMeta, 0),
372377
}
373378

schema_pg_tpl.go

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,14 @@ CREATE TABLE IF NOT EXISTS _asset (
1717
content_type text,
1818
url text,
1919
_locale text not null,
20+
_status text not null,
2021
_version integer not null default 0,
2122
_created_at timestamp without time zone default now(),
2223
_created_by text not null,
2324
_updated_at timestamp without time zone default now(),
24-
_updated_by text not null
25+
_updated_by text not null,
26+
_published_at timestamp without time zone,
27+
_published_by text
2528
);
2629
CREATE UNIQUE INDEX IF NOT EXISTS _asset__sys_id__locale ON _asset (_sys_id, _locale);
2730
--
@@ -54,11 +57,14 @@ CREATE TABLE IF NOT EXISTS {{ $tbl.TableName }} (
5457
"{{ .ColumnName }}" {{ .ColumnType }},
5558
{{- end }}
5659
_locale text not null,
60+
_status text not null,
5761
_version integer not null default 0,
5862
_created_at timestamp without time zone not null default now(),
5963
_created_by text not null,
6064
_updated_at timestamp without time zone not null default now(),
61-
_updated_by text not null
65+
_updated_by text not null,
66+
_published_at timestamp without time zone,
67+
_published_by text
6268
);
6369
--
6470
CREATE UNIQUE INDEX IF NOT EXISTS idx_{{ $tbl.TableName }}__sys_id_locale ON {{ $tbl.TableName }}(_sys_id,_locale);
@@ -101,9 +107,9 @@ SET
101107
description = EXCLUDED.description,
102108
displayField = EXCLUDED.displayField,
103109
fields = EXCLUDED.fields,
104-
_version= EXCLUDED._version,
105-
_updated_at=EXCLUDED._updated_at,
106-
_updated_by=EXCLUDED._updated_by
110+
_version = EXCLUDED._version,
111+
_updated_at = EXCLUDED._updated_at,
112+
_updated_by = EXCLUDED._updated_by
107113
;
108114
--
109115
{{- end -}}

sync.go

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,15 @@ import (
66
"net/url"
77
)
88

9-
type SyncCallback func(*SyncResponse) error
9+
type SyncCallback func(*SyncResponse)
1010

1111
func (s *SpacesService) Sync(token string) (*SyncResult, error) {
1212
var err error
1313
res := &SyncResult{}
1414

15-
res.Token, err = s.SyncPaged(token, func(sr *SyncResponse) error {
16-
for _, item := range sr.Items {
17-
res.Items = append(res.Items, item)
18-
}
19-
return nil
15+
res.Token, err = s.SyncPaged(token, func(sr *SyncResponse) {
16+
res.Items = append(res.Items, sr.Items...)
17+
2018
})
2119
if err != nil {
2220
return nil, err
@@ -38,10 +36,7 @@ func (s *SpacesService) SyncPaged(token string, callback SyncCallback) (string,
3836
return "", err
3937
}
4038

41-
err = callback(res)
42-
if err != nil {
43-
return "", err
44-
}
39+
callback(res)
4540

4641
if len(res.NextPageURL) > 0 {
4742
t, err := getSyncToken(res.NextPageURL)

0 commit comments

Comments
 (0)