Skip to content

Commit e8b8c32

Browse files
authored
fix: list apps wails handler (#1555)
1 parent b30625b commit e8b8c32

File tree

1 file changed

+43
-40
lines changed

1 file changed

+43
-40
lines changed

wails/wails_handlers.go

Lines changed: 43 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)