Skip to content

Commit

Permalink
feat(server): change project import api (#1178)
Browse files Browse the repository at this point in the history
Co-authored-by: tomokazu tantaka <[email protected]>
  • Loading branch information
hexaforce and hexaforce authored Oct 25, 2024
1 parent 88b536e commit 61f707c
Show file tree
Hide file tree
Showing 40 changed files with 3,053 additions and 416 deletions.
2 changes: 1 addition & 1 deletion server/e2e/gql_storytelling_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -1048,7 +1048,7 @@ func TestStoryPublishing(t *testing.T) {
_, err = buf.ReadFrom(rc)
assert.NoError(t, err)

pub := regexp.MustCompile(fmt.Sprintf(`{"schemaVersion":1,"id":"%s","publishedAt":".*","property":{"tiles":\[{"id":".*"}]},"plugins":{},"layers":null,"widgets":\[],"widgetAlignSystem":null,"tags":\[],"clusters":\[],"story":{"id":"%s","property":{},"pages":\[{"id":"%s","property":{},"title":"test","blocks":\[{"id":"%s","property":{"default":{"text":"test value"},"panel":{"padding":{"top":2,"bottom":3,"left":0,"right":1}}},"plugins":null,"extensionId":"%s","pluginId":"%s"}],"swipeable":true,"swipeableLayers":\[],"layers":\[]}],"position":"left","bgColor":""},"nlsLayers":null,"layerStyles":null,"coreSupport":true,"enableGa":false,"trackingId":""}`, sID, storyID, pageID, blockID, extensionId, pluginId))
pub := regexp.MustCompile(fmt.Sprintf(`{"schemaVersion":1,"id":"%s","publishedAt":".*","property":{"tiles":\[{"id":".*"}]},"plugins":{},"layers":null,"widgets":\[],"widgetAlignSystem":null,"tags":\[],"clusters":\[],"story":{"id":"%s","title":"","property":{},"pages":\[{"id":"%s","property":{},"title":"test","blocks":\[{"id":"%s","property":{"default":{"text":"test value"},"panel":{"padding":{"top":2,"bottom":3,"left":0,"right":1}}},"plugins":null,"extensionId":"%s","pluginId":"%s"}],"swipeable":true,"swipeableLayers":\[],"layers":\[]}],"position":"left","bgColor":""},"nlsLayers":null,"layerStyles":null,"coreSupport":true,"enableGa":false,"trackingId":""}`, sID, storyID, pageID, blockID, extensionId, pluginId))
assert.Regexp(t, pub, buf.String())

resString := e.GET("/p/test-alias/data.json").
Expand Down
1 change: 1 addition & 0 deletions server/gql/project.graphql
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,7 @@ input ExportProjectInput {
}

input ImportProjectInput {
teamId: ID!
file: Upload!
}

Expand Down
12 changes: 10 additions & 2 deletions server/internal/adapter/gql/generated.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 3 additions & 0 deletions server/internal/adapter/gql/gqlmodel/convert_nlslayer.go
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,9 @@ func ToNLSLayer(l nlslayer.NLSLayer, parent *id.NLSLayerID) NLSLayer {

func ToNLSLayers(layers nlslayer.NLSLayerList, parent *id.NLSLayerID) []NLSLayer {
return util.Map(layers, func(l *nlslayer.NLSLayer) NLSLayer {
if l == nil {
return nil
}
return ToNLSLayer(*l, parent)
})
}
Expand Down
29 changes: 29 additions & 0 deletions server/internal/adapter/gql/gqlmodel/convert_plugin.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package gqlmodel

import (
"encoding/json"
"strings"

"github.com/reearth/reearth/server/pkg/plugin"
"github.com/reearth/reearthx/util"
Expand Down Expand Up @@ -123,6 +124,14 @@ func ToPluginWidgetZoneType(t plugin.WidgetZoneType) WidgetZoneType {
case plugin.WidgetZoneOuter:
return WidgetZoneTypeOuter
}

t2 := plugin.WidgetZoneType(strings.ToLower(string(t)))
switch t2 {
case plugin.WidgetZoneInner:
return WidgetZoneTypeInner
case plugin.WidgetZoneOuter:
return WidgetZoneTypeOuter
}
return ""
}

Expand All @@ -135,6 +144,16 @@ func ToPluginWidgetSectionType(t plugin.WidgetSectionType) WidgetSectionType {
case plugin.WidgetSectionRight:
return WidgetSectionTypeRight
}

t2 := plugin.WidgetSectionType(strings.ToLower(string(t)))
switch t2 {
case plugin.WidgetSectionLeft:
return WidgetSectionTypeLeft
case plugin.WidgetSectionCenter:
return WidgetSectionTypeCenter
case plugin.WidgetSectionRight:
return WidgetSectionTypeRight
}
return ""
}

Expand All @@ -147,5 +166,15 @@ func ToPluginWidgetAreaType(t plugin.WidgetAreaType) WidgetAreaType {
case plugin.WidgetAreaBottom:
return WidgetAreaTypeBottom
}

t2 := plugin.WidgetAreaType(strings.ToLower(string(t)))
switch t2 {
case plugin.WidgetAreaTop:
return WidgetAreaTypeTop
case plugin.WidgetAreaMiddle:
return WidgetAreaTypeMiddle
case plugin.WidgetAreaBottom:
return WidgetAreaTypeBottom
}
return ""
}
48 changes: 48 additions & 0 deletions server/internal/adapter/gql/gqlmodel/convert_property.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import (
"github.com/reearth/reearth/server/pkg/property"
"github.com/reearth/reearth/server/pkg/value"
"github.com/reearth/reearthx/util"
"github.com/samber/lo"
)

func ToPropertyValue(v *property.Value) *interface{} {
Expand Down Expand Up @@ -242,6 +243,12 @@ func ToPropertySchema(propertySchema *property.Schema) *PropertySchema {
}
}

func ToPropertySchemas(ps []*property.Schema) []*PropertySchema {
return lo.Map(ps, func(s *property.Schema, _ int) *PropertySchema {
return ToPropertySchema(s)
})
}

func ToPropertyLinkableFields(sid id.PropertySchemaID, l property.LinkableFields) *PropertyLinkableFields {
var latlng, url *id.PropertyFieldID
if l.LatLng != nil {
Expand Down Expand Up @@ -327,6 +334,47 @@ func ToPropertySchemaFieldUI(ui *property.SchemaFieldUI) *PropertySchemaFieldUI
return nil
}

func FromPropertySchemaFieldUI(ui *string) *property.SchemaFieldUI {
if ui == nil {
return nil
}

var ui2 property.SchemaFieldUI
switch *ui {
case PropertySchemaFieldUIMultiline.String():
ui2 = property.SchemaFieldUIMultiline
case PropertySchemaFieldUISelection.String():
ui2 = property.SchemaFieldUISelection
case PropertySchemaFieldUIColor.String():
ui2 = property.SchemaFieldUIColor
case PropertySchemaFieldUIRange.String():
ui2 = property.SchemaFieldUIRange
case PropertySchemaFieldUISlider.String():
ui2 = property.SchemaFieldUISlider
case PropertySchemaFieldUIImage.String():
ui2 = property.SchemaFieldUIImage
case PropertySchemaFieldUIVideo.String():
ui2 = property.SchemaFieldUIVideo
case PropertySchemaFieldUIFile.String():
ui2 = property.SchemaFieldUIFile
case PropertySchemaFieldUILayer.String():
ui2 = property.SchemaFieldUILayer
case PropertySchemaFieldUICameraPose.String():
ui2 = property.SchemaFieldUICameraPose
case PropertySchemaFieldUIPadding.String():
ui2 = property.SchemaFieldUIPadding
case PropertySchemaFieldUIMargin.String():
ui2 = property.SchemaFieldUIMargin
case PropertySchemaFieldUIDatetime.String():
ui2 = property.SchemaFieldUIDateTime
}

if ui2 != "" {
return &ui2
}
return nil
}

func ToMergedPropertyFromMetadata(m *property.MergedMetadata) *MergedProperty {
if m == nil {
return nil
Expand Down
30 changes: 30 additions & 0 deletions server/internal/adapter/gql/gqlmodel/convert_value.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import (
"net/url"
"strings"

"github.com/reearth/reearth/server/pkg/property"
"github.com/reearth/reearth/server/pkg/value"
"go.mongodb.org/mongo-driver/bson/primitive"
)
Expand Down Expand Up @@ -206,3 +207,32 @@ func ToValueType(t value.Type) ValueType {
func FromValueType(t ValueType) value.Type {
return value.Type(strings.ToLower(string(t)))
}

func ToPropertyValueType(t string) property.ValueType {
switch t {
case ValueTypeBool.String():
return property.ValueTypeBool
case ValueTypeNumber.String():
return property.ValueTypeNumber
case ValueTypeString.String():
return property.ValueTypeString
case ValueTypeRef.String():
return property.ValueTypeRef
case ValueTypeURL.String():
return property.ValueTypeURL
case ValueTypeLatlng.String():
return property.ValueTypeLatLng
case ValueTypeLatlngheight.String():
return property.ValueTypeLatLngHeight
case ValueTypeCoordinates.String():
return property.ValueTypeCoordinates
case ValueTypePolygon.String():
return property.ValueTypePolygon
case ValueTypeRect.String():
return property.ValueTypeRect
case ValueTypeArray.String():
return property.ValueTypeArray
default:
return property.ValueTypeUnknown
}
}
3 changes: 2 additions & 1 deletion server/internal/adapter/gql/gqlmodel/models_gen.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit 61f707c

Please sign in to comment.