@@ -13,10 +13,8 @@ import (
1313
1414 "sd/cmd/web/handlers"
1515 "sd/cmd/web/views/partials"
16- "sd/pkg/devices"
17- "sd/pkg/instance"
1816 "sd/pkg/natsconn"
19- "sd/pkg/profiles "
17+ "sd/pkg/store "
2018 "sd/pkg/types"
2119)
2220
@@ -87,81 +85,47 @@ func NewServer() *Server {
8785func (s * Server ) setupRoutes () {
8886 // Routes
8987 s .router .Get ("/" , func (w http.ResponseWriter , r * http.Request ) {
90- instances , err := instance .GetInstances ()
91- if err != nil {
92- http .Error (w , err .Error (), http .StatusInternalServerError )
93- return
94- }
88+ instances := store .GetInstances ()
9589 partials .HomePage (instances ).Render (r .Context (), w )
9690 })
9791
9892 s .router .Get ("/instance/{instanceID}" , func (w http.ResponseWriter , r * http.Request ) {
99- instances , err := instance .GetInstances ()
10093 instanceID := chi .URLParam (r , "instanceID" )
101- if err != nil {
102- http .Error (w , err .Error (), http .StatusInternalServerError )
103- return
104- }
105- devices , err := devices .GetDevices (instanceID )
106- if err != nil {
107- http .Error (w , err .Error (), http .StatusInternalServerError )
108- return
109- }
110- partials .InstancePage (instances , devices ).Render (r .Context (), w )
94+
95+ instances := store .GetInstances ()
96+ devices := store .GetDevices (instanceID )
97+ instance := store .GetInstance (instanceID )
98+ partials .InstancePage (instance , instances , devices ).Render (r .Context (), w )
11199 })
112100
113101 s .router .Get ("/instance/{instanceID}/device/{deviceID}" , func (w http.ResponseWriter , r * http.Request ) {
114- instances , err := instance .GetInstances ()
102+ instances := store .GetInstances ()
115103 instanceID := chi .URLParam (r , "instanceID" )
116104 deviceID := chi .URLParam (r , "deviceID" )
117- if err != nil {
118- http .Error (w , err .Error (), http .StatusInternalServerError )
119- return
120- }
121- devices , err := devices .GetDevices (instanceID )
122- if err != nil {
123- http .Error (w , err .Error (), http .StatusInternalServerError )
124- return
125- }
126- profiles , err := profiles .GetProfiles (instanceID , deviceID )
127- if err != nil {
128- http .Error (w , err .Error (), http .StatusInternalServerError )
129- return
130- }
131- pages , err := s .getPages ()
132- if err != nil {
133- http .Error (w , err .Error (), http .StatusInternalServerError )
134- return
135- }
136- partials .DevicePage (instances , devices , profiles , pages , instanceID , deviceID ).Render (r .Context (), w )
105+
106+ devices := store .GetDevices (instanceID )
107+ profiles := store .GetProfiles (instanceID , deviceID )
108+ pages := store .GetPages (instanceID , deviceID , profiles [0 ].ID ) // TODO: Fix this
109+ instance := store .GetInstance (instanceID )
110+ device := store .GetDevice (instanceID , deviceID )
111+ partials .DevicePage (instances , devices , profiles , pages , instance , device ).Render (r .Context (), w )
137112 })
138113
139114 s .router .Get ("/instance/{instanceID}/device/{deviceID}/profile/{profileID}/page/{pageID}" , func (w http.ResponseWriter , r * http.Request ) {
140- instances , err := instance .GetInstances ()
141115 instanceID := chi .URLParam (r , "instanceID" )
142116 deviceID := chi .URLParam (r , "deviceID" )
143117 profileID := chi .URLParam (r , "profileID" )
144118 pageID := chi .URLParam (r , "pageID" )
145- if err != nil {
146- http .Error (w , err .Error (), http .StatusInternalServerError )
147- return
148- }
149- devices , err := devices .GetDevices (instanceID )
150- if err != nil {
151- http .Error (w , err .Error (), http .StatusInternalServerError )
152- return
153- }
154- profiles , err := profiles .GetProfiles (instanceID , deviceID )
155- if err != nil {
156- http .Error (w , err .Error (), http .StatusInternalServerError )
157- return
158- }
159- pages , err := s .getPages ()
160- if err != nil {
161- http .Error (w , err .Error (), http .StatusInternalServerError )
162- return
163- }
164- partials .ProfilePage (instances , devices , profiles , pages , instanceID , deviceID , profileID , pageID ).Render (r .Context (), w )
119+
120+ instances := store .GetInstances ()
121+ devices := store .GetDevices (instanceID )
122+ instance := store .GetInstance (instanceID )
123+ device := store .GetDevice (instanceID , deviceID )
124+ profile := store .GetProfile (instanceID , deviceID , profileID )
125+ page := store .GetPage (instanceID , deviceID , profileID , pageID )
126+ profiles := store .GetProfiles (instanceID , deviceID )
127+ pages := store .GetPages (instanceID , deviceID , profileID )
128+ partials .ProfilePage (instances , devices , profiles , pages , instance , device , profile , page ).Render (r .Context (), w )
165129 })
166130
167131 // HTMX Routes
@@ -201,14 +165,15 @@ func (s *Server) setupRoutes() {
201165 defer watcher .Stop ()
202166
203167 // 4. Send initial device list
204- d , err := devices .GetDevices (instanceID )
168+ d := store .GetDevices (instanceID )
205169
206170 log .Info ().Interface ("devices" , d ).Msg ("Initial devices" )
207171
208172 if err != nil {
209173 log .Error ().Err (err ).Msg ("Failed to get initial devices" )
210174 } else {
211- if err := s .sendDeviceList (w , r .Context (), instanceID , d ); err != nil {
175+ instance := store .GetInstance (instanceID )
176+ if err := s .sendDeviceList (w , r .Context (), instance , d ); err != nil {
212177 log .Error ().Err (err ).Msg ("Failed to send initial device list" )
213178 return
214179 }
@@ -234,13 +199,10 @@ func (s *Server) setupRoutes() {
234199 case <- done :
235200 return
236201 default :
237- d , err := devices .GetDevices (instanceID )
238- if err != nil {
239- log .Error ().Err (err ).Msg ("Failed to get devices" )
240- continue
241- }
202+ d := store .GetDevices (instanceID )
203+ instance := store .GetInstance (instanceID )
242204
243- if err := s .sendDeviceList (w , r .Context (), instanceID , d ); err != nil {
205+ if err := s .sendDeviceList (w , r .Context (), instance , d ); err != nil {
244206 if err != context .Canceled {
245207 log .Error ().Err (err ).Msg ("Failed to send device list" )
246208 }
@@ -264,9 +226,10 @@ func (s *Server) setupRoutes() {
264226}
265227
266228// Move sendDeviceList outside setupRoutes
267- func (s * Server ) sendDeviceList (w http.ResponseWriter , ctx context.Context , instanceID string , devices []types.Device ) error {
229+ func (s * Server ) sendDeviceList (w http.ResponseWriter , ctx context.Context , instance types. Instance , devices []types.Device ) error {
268230 var buf bytes.Buffer
269- if err := partials .DeviceCardList (instanceID , devices ).Render (ctx , & buf ); err != nil {
231+
232+ if err := partials .DeviceCardList (instance , devices ).Render (ctx , & buf ); err != nil {
270233 return err
271234 }
272235
@@ -280,10 +243,6 @@ func (s *Server) sendDeviceList(w http.ResponseWriter, ctx context.Context, inst
280243 return nil
281244}
282245
283- func (s * Server ) getPages () ([]types.Page , error ) {
284- return nil , nil
285- }
286-
287246func (s * Server ) Start () error {
288247 port := os .Getenv ("PORT" )
289248 if port == "" {
0 commit comments