@@ -151,6 +151,49 @@ func (app *WailsApp) WailsRequestRouter(route string, method string, body string
151151 return WailsRequestRouterResponse {Body : nil , Error : "" }
152152 }
153153
154+ // list apps
155+ if strings .HasPrefix (route , "/api/apps" ) && method == "GET" {
156+ limit := uint64 (0 )
157+ offset := uint64 (0 )
158+ var filtersJSON string
159+ var orderBy string
160+
161+ // Extract limit and offset parameters
162+ paramRegex := regexp .MustCompile (`[?&](limit|offset|filters|order_by)=([^&]+)` )
163+ paramMatches := paramRegex .FindAllStringSubmatch (route , - 1 )
164+ for _ , match := range paramMatches {
165+ switch match [1 ] {
166+ case "limit" :
167+ if parsedLimit , err := strconv .ParseUint (match [2 ], 10 , 64 ); err == nil {
168+ limit = parsedLimit
169+ }
170+ case "offset" :
171+ if parsedOffset , err := strconv .ParseUint (match [2 ], 10 , 64 ); err == nil {
172+ offset = parsedOffset
173+ }
174+ case "filters" :
175+ filtersJSON = match [2 ]
176+ case "order_by" :
177+ orderBy = match [2 ]
178+ }
179+ }
180+
181+ var filters api.ListAppsFilters
182+ err := json .Unmarshal ([]byte (filtersJSON ), & filters )
183+ if err != nil {
184+ logger .Logger .WithError (err ).WithFields (logrus.Fields {
185+ "filters" : filtersJSON ,
186+ }).Error ("Failed to deserialize app filters" )
187+ return WailsRequestRouterResponse {Body : nil , Error : err .Error ()}
188+ }
189+
190+ apps , err := app .api .ListApps (limit , offset , filters , orderBy )
191+ if err != nil {
192+ return WailsRequestRouterResponse {Body : nil , Error : err .Error ()}
193+ }
194+ return WailsRequestRouterResponse {Body : apps , Error : "" }
195+ }
196+
154197 peerChannelRegex := regexp .MustCompile (
155198 `/api/peers/([^/]+)/channels/([^/]+)` ,
156199 )
@@ -403,46 +446,6 @@ func (app *WailsApp) WailsRequestRouter(route string, method string, body string
403446 return WailsRequestRouterResponse {Body : rate , Error : "" }
404447 case "/api/apps" :
405448 switch method {
406- case "GET" :
407- limit := uint64 (0 )
408- offset := uint64 (0 )
409- var filtersJSON string
410- var orderBy string
411-
412- // Extract limit and offset parameters
413- paramRegex := regexp .MustCompile (`[?&](limit|offset|name)=([^&]+)` )
414- paramMatches := paramRegex .FindAllStringSubmatch (route , - 1 )
415- for _ , match := range paramMatches {
416- switch match [1 ] {
417- case "limit" :
418- if parsedLimit , err := strconv .ParseUint (match [2 ], 10 , 64 ); err == nil {
419- limit = parsedLimit
420- }
421- case "offset" :
422- if parsedOffset , err := strconv .ParseUint (match [2 ], 10 , 64 ); err == nil {
423- offset = parsedOffset
424- }
425- case "filters" :
426- filtersJSON = match [2 ]
427- case "order_by" :
428- orderBy = match [2 ]
429- }
430- }
431-
432- var filters api.ListAppsFilters
433- err := json .Unmarshal ([]byte (filtersJSON ), & filters )
434- if err != nil {
435- logger .Logger .WithError (err ).WithFields (logrus.Fields {
436- "filters" : filtersJSON ,
437- }).Error ("Failed to deserialize app filters" )
438- return WailsRequestRouterResponse {Body : nil , Error : err .Error ()}
439- }
440-
441- apps , err := app .api .ListApps (limit , offset , filters , orderBy )
442- if err != nil {
443- return WailsRequestRouterResponse {Body : nil , Error : err .Error ()}
444- }
445- return WailsRequestRouterResponse {Body : apps , Error : "" }
446449 case "POST" :
447450 createAppRequest := & api.CreateAppRequest {}
448451 err := json .Unmarshal ([]byte (body ), createAppRequest )
0 commit comments