Skip to content
Snippets Groups Projects
Commit a31ddde9 authored by Danis Kirasirov's avatar Danis Kirasirov :8ball: Committed by Pavel Antonov
Browse files

feat(api): Обновлена API: структура Collection добавлено поля "Без архива"

Close #PRXS-2600
parent 4c8a9dfa
No related branches found
No related tags found
No related merge requests found
...@@ -53,14 +53,15 @@ func (a Access) Can(action permission.Action) bool { ...@@ -53,14 +53,15 @@ func (a Access) Can(action permission.Action) bool {
} }
type Collection struct { type Collection struct {
ID string `json:"id" bson:"id"` ID string `json:"id" bson:"id"`
SpaceID string `json:"spaceId" bson:"-"` SpaceID string `json:"spaceId" bson:"-"`
EnvID string `json:"envId" bson:"-"` EnvID string `json:"envId" bson:"-"`
Name string `json:"name" bson:"name"` Name string `json:"name" bson:"name"`
Single *bool `json:"single" bson:"single,omitempty"` // В коллекции может быть только один документ Single *bool `json:"single" bson:"single,omitempty"` // В коллекции может быть только один документ
System *bool `json:"system" bson:"system,omitempty"` // Системная коллекция System *bool `json:"system" bson:"system,omitempty"` // Системная коллекция
NoData *bool `json:"no_data" bson:"no_data"` // Коллекция не содержит элементы. Схема используется для включения в другие схемы NoData *bool `json:"no_data" bson:"no_data"` // Коллекция не содержит элементы. Схема используется для включения в другие схемы
Hidden bool `json:"hidden" bson:"hidden"` // Коллекция скрыта в административном интерфейсе Hidden bool `json:"hidden" bson:"hidden"` // Коллекция скрыта в административном интерфейсе
NoArchive bool `json:"no_archive" bson:"no_archive,omitempty"` // Коллекция без архива
// Все записи коллекции считаются опубликованными, функции публикации и снятия с публикации недоступны. // Все записи коллекции считаются опубликованными, функции публикации и снятия с публикации недоступны.
// При включении параметра коллекции "без публикации" все записи, независимо от статуса, будут считаться опубликованными. // При включении параметра коллекции "без публикации" все записи, независимо от статуса, будут считаться опубликованными.
...@@ -150,6 +151,7 @@ func (c Collection) Clone() *Collection { ...@@ -150,6 +151,7 @@ func (c Collection) Clone() *Collection {
NoData: c.NoData, NoData: c.NoData,
Hidden: c.Hidden, Hidden: c.Hidden,
NoPublish: c.NoPublish, NoPublish: c.NoPublish,
NoArchive: c.NoArchive,
} }
if c.Single != nil { if c.Single != nil {
...@@ -232,6 +234,9 @@ func FromSchemaMetadata(schemas ...*schema.Schema) []*Collection { ...@@ -232,6 +234,9 @@ func FromSchemaMetadata(schemas ...*schema.Schema) []*Collection {
if disablePublishing, ok := sch.Metadata["collection_no_publish"]; ok && disablePublishing == "true" { if disablePublishing, ok := sch.Metadata["collection_no_publish"]; ok && disablePublishing == "true" {
coll.NoPublish = true coll.NoPublish = true
} }
if noArchive, ok := sch.Metadata["collection_no_archive"]; ok && noArchive == "true" {
coll.NoArchive = true
}
if _, ok := sch.Metadata["collection_view_id"]; ok { if _, ok := sch.Metadata["collection_view_id"]; ok {
coll.View = &View{ coll.View = &View{
......
...@@ -135,6 +135,7 @@ func TestFromSchemaMetadata(t *testing.T) { ...@@ -135,6 +135,7 @@ func TestFromSchemaMetadata(t *testing.T) {
"collection_nodata", "true", "collection_nodata", "true",
"collection_hidden", "true", "collection_hidden", "true",
"collection_no_publish", "true", "collection_no_publish", "true",
"collection_no_archive", "true",
"collection_view_space", "viewSpaceID", "collection_view_space", "viewSpaceID",
"collection_view_env", "viewEnvID", "collection_view_env", "viewEnvID",
"collection_view_id", "viewCollID", "collection_view_id", "viewCollID",
...@@ -148,7 +149,8 @@ func TestFromSchemaMetadata(t *testing.T) { ...@@ -148,7 +149,8 @@ func TestFromSchemaMetadata(t *testing.T) {
NoData: optional.True, NoData: optional.True,
Hidden: true, Hidden: true,
NoPublish: true, NoPublish: true,
Schema: schema.New("a", field.String()).WithMetadata("collection_id", "collID", "collection_name", "collName", "collection_single", "true", "collection_system", "true", "collection_nodata", "true", "collection_hidden", "true", "collection_no_publish", "true", "collection_view_space", "viewSpaceID", "collection_view_env", "viewEnvID", "collection_view_id", "viewCollID", "collection_view_filter", "viewFilter"), NoArchive: true,
Schema: schema.New("a", field.String()).WithMetadata("collection_id", "collID", "collection_name", "collName", "collection_single", "true", "collection_system", "true", "collection_nodata", "true", "collection_hidden", "true", "collection_no_publish", "true", "collection_no_archive", "true", "collection_view_space", "viewSpaceID", "collection_view_env", "viewEnvID", "collection_view_id", "viewCollID", "collection_view_filter", "viewFilter"),
View: &View{ View: &View{
SpaceID: "viewSpaceID", SpaceID: "viewSpaceID",
EnvID: "viewEnvID", EnvID: "viewEnvID",
......
...@@ -71,6 +71,7 @@ func PtrCollectionToProto(coll *service.Collection) (*pb.Collection, error) { ...@@ -71,6 +71,7 @@ func PtrCollectionToProto(coll *service.Collection) (*pb.Collection, error) {
Access: access, Access: access,
Hidden: coll.Hidden, Hidden: coll.Hidden,
NoPublish: coll.NoPublish, NoPublish: coll.NoPublish,
NoArchive: coll.NoArchive,
Tags: coll.Tags, Tags: coll.Tags,
} }
...@@ -136,6 +137,7 @@ func ProtoToPtrCollection(protoCollection *pb.Collection) (*service.Collection, ...@@ -136,6 +137,7 @@ func ProtoToPtrCollection(protoCollection *pb.Collection) (*service.Collection,
Access: access, Access: access,
Hidden: protoCollection.Hidden, Hidden: protoCollection.Hidden,
NoPublish: protoCollection.NoPublish, NoPublish: protoCollection.NoPublish,
NoArchive: protoCollection.NoArchive,
Tags: protoCollection.Tags, Tags: protoCollection.Tags,
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment