@@ -2,6 +2,7 @@ package mongodoc
22
33import (
44 "errors"
5+ "fmt"
56 "time"
67
78 "go.mongodb.org/mongo-driver/bson"
@@ -131,45 +132,45 @@ func NewScene(scene *scene.Scene) (*SceneDocument, string) {
131132func (d * SceneDocument ) Model () (* scene.Scene , error ) {
132133 sid , err := id .SceneIDFrom (d .ID )
133134 if err != nil {
134- return nil , err
135+ return nil , fmt . Errorf ( "mongo scene: invalid scene.id (%s): %w" , d . ID , err )
135136 }
136137 projectID , err := id .ProjectIDFrom (d .Project )
137138 if err != nil {
138- return nil , err
139+ return nil , fmt . Errorf ( "mongo scene: invalid scene.project (%s): %w" , d . Project , err )
139140 }
140141 prid , err := id .PropertyIDFrom (d .Property )
141142 if err != nil {
142- return nil , err
143+ return nil , fmt . Errorf ( "mongo scene: invalid scene.property (%s): %w" , d . Property , err )
143144 }
144145 tid , err := accountdomain .WorkspaceIDFrom (d .Team )
145146 if err != nil {
146- return nil , err
147+ return nil , fmt . Errorf ( "mongo scene: invalid scene.team (%s): %w" , d . Team , err )
147148 }
148149
149150 var lid scene.LayerID
150151 if d .RootLayer != "" {
151152 lid , err = id .LayerIDFrom (d .RootLayer )
152153 if err != nil {
153- return nil , err
154+ return nil , fmt . Errorf ( "mongo scene: invalid scene.rootLayer (%s): %w" , d . RootLayer , err )
154155 }
155156 }
156157
157158 ws := make ([]* scene.Widget , 0 , len (d .Widgets ))
158159 ps := make ([]* scene.Plugin , 0 , len (d .Plugins ))
159160 clusters := make ([]* scene.Cluster , 0 , len (d .Clusters ))
160161
161- for _ , w := range d .Widgets {
162+ for idx , w := range d .Widgets {
162163 wid , err := id .WidgetIDFrom (w .ID )
163164 if err != nil {
164- return nil , err
165+ return nil , fmt . Errorf ( "mongo scene: invalid scene.widgets[%d].id (%s): %w" , idx , w . ID , err )
165166 }
166167 pid , err := id .PluginIDFrom (w .Plugin )
167168 if err != nil {
168- return nil , err
169+ return nil , fmt . Errorf ( "mongo scene: invalid scene.widgets[%d].plugin (%s): %w" , idx , w . Plugin , err )
169170 }
170171 prid , err := id .PropertyIDFrom (w .Property )
171172 if err != nil {
172- return nil , err
173+ return nil , fmt . Errorf ( "mongo scene: invalid scene.widgets[%d].property (%s): %w" , idx , w . Property , err )
173174 }
174175 sw , err := scene .NewWidget (
175176 wid ,
@@ -180,31 +181,31 @@ func (d *SceneDocument) Model() (*scene.Scene, error) {
180181 w .Extended ,
181182 )
182183 if err != nil {
183- return nil , err
184+ return nil , fmt . Errorf ( "mongo scene: invalid scene.widgets[%d]: %w" , idx , err )
184185 }
185186 ws = append (ws , sw )
186187 }
187188
188- for _ , p := range d .Plugins {
189+ for idx , p := range d .Plugins {
189190 pid , err := id .PluginIDFrom (p .Plugin )
190191 if err != nil {
191- return nil , err
192+ return nil , fmt . Errorf ( "mongo scene: invalid scene.plugins[%d].plugin (%s): %w" , idx , p . Plugin , err )
192193 }
193194 ps = append (ps , scene .NewPlugin (pid , id .PropertyIDFromRef (p .Property )))
194195 }
195196
196- for _ , c := range d .Clusters {
197+ for idx , c := range d .Clusters {
197198 cid , err := id .ClusterIDFrom (c .ID )
198199 if err != nil {
199- return nil , err
200+ return nil , fmt . Errorf ( "mongo scene: invalid scene.clusters[%d].id (%s): %w" , idx , c . ID , err )
200201 }
201202 pid , err := id .PropertyIDFrom (c .Property )
202203 if err != nil {
203- return nil , err
204+ return nil , fmt . Errorf ( "mongo scene: invalid scene.clusters[%d].property (%s): %w" , idx , c . Property , err )
204205 }
205206 cluster , err := scene .NewCluster (cid , c .Name , pid )
206207 if err != nil {
207- return nil , err
208+ return nil , fmt . Errorf ( "mongo scene: invalid scene.clusters[%d]: %w" , idx , err )
208209 }
209210 clusters = append (clusters , cluster )
210211 }
0 commit comments