2fas-server/internal/api/icons/app/queries/web_service_dump.go

63 lines
1012 B
Go
Raw Normal View History

2022-12-31 10:22:38 +01:00
package queries
import (
"database/sql"
"encoding/json"
"gorm.io/datatypes"
)
type WebServiceDumpPresenter struct {
WebService datatypes.JSON
}
type WebServicesDumpQuery struct {
Limit int `uri:"limit"`
Offset int `uri:"offset"`
}
type WebServicesDumpQueryHandler struct {
Database *sql.DB
}
func (h *WebServicesDumpQueryHandler) Dump(q *WebServicesDumpQuery) ([]json.RawMessage, error) {
rows, err := h.Database.Query("SELECT * FROM web_services_dump")
defer rows.Close()
var emptyResult []json.RawMessage
if err != nil {
return emptyResult, err
}
var services []json.RawMessage
for rows.Next() {
var row json.RawMessage
err := rows.Scan(&row)
if err != nil {
return emptyResult, err
}
var jsonRow json.RawMessage
err = json.Unmarshal(row, &jsonRow)
if err != nil {
return emptyResult, err
}
out, _ := json.Marshal(&jsonRow)
services = append(services, out)
}
if err = rows.Err(); err != nil {
return emptyResult, err
}
return services, nil
}