feat: add get remote api endpoint
This commit is contained in:
parent
6940782024
commit
83ab71f845
@ -97,6 +97,22 @@ func (db *RemoteDatabase) CreateRemoteCommands(remoteId string, commandIds []str
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (db *RemoteDatabase) GetRemote(remoteId string) (Remote, error) {
|
||||||
|
var remote Remote
|
||||||
|
queryString := "SELECT id, title FROM Remotes WHERE id = ?"
|
||||||
|
row := db.Connection.QueryRow(queryString, remoteId)
|
||||||
|
error := row.Scan(&remote.Id, &remote.Title)
|
||||||
|
if error != nil {
|
||||||
|
return Remote{}, fmt.Errorf("error scanning remote: %s", error)
|
||||||
|
}
|
||||||
|
commands, error := db.GetCommandsByRemoteId(remoteId)
|
||||||
|
if error != nil {
|
||||||
|
return Remote{}, error
|
||||||
|
}
|
||||||
|
remote.Commands = commands
|
||||||
|
return remote, nil
|
||||||
|
}
|
||||||
|
|
||||||
func (db *RemoteDatabase) GetRemotes() ([]Remote, error) {
|
func (db *RemoteDatabase) GetRemotes() ([]Remote, error) {
|
||||||
rows, error := db.Connection.Query("SELECT id, title FROM Remotes")
|
rows, error := db.Connection.Query("SELECT id, title FROM Remotes")
|
||||||
if error != nil {
|
if error != nil {
|
||||||
|
|||||||
@ -17,6 +17,14 @@ func (rm *RemoteManager) CreateRemote(remote d.Remote) (string, error) {
|
|||||||
return rm.remoteDatabase.CreateRemote(remote)
|
return rm.remoteDatabase.CreateRemote(remote)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (rm *RemoteManager) GetRemote(remoteID string) (d.Remote, error) {
|
||||||
|
remote, err := rm.remoteDatabase.GetRemote(remoteID)
|
||||||
|
if err != nil {
|
||||||
|
return d.Remote{}, err
|
||||||
|
}
|
||||||
|
return remote, nil
|
||||||
|
}
|
||||||
|
|
||||||
func (rm *RemoteManager) GetRemotes() ([]d.Remote, error) {
|
func (rm *RemoteManager) GetRemotes() ([]d.Remote, error) {
|
||||||
remotes, err := rm.remoteDatabase.GetRemotes()
|
remotes, err := rm.remoteDatabase.GetRemotes()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
@ -5,6 +5,7 @@ import (
|
|||||||
m "playback-device-server/management"
|
m "playback-device-server/management"
|
||||||
|
|
||||||
"github.com/labstack/echo/v4"
|
"github.com/labstack/echo/v4"
|
||||||
|
"github.com/rs/zerolog/log"
|
||||||
)
|
)
|
||||||
|
|
||||||
type RemoteApiHandler struct {
|
type RemoteApiHandler struct {
|
||||||
@ -16,6 +17,7 @@ func (r *RemoteApiHandler) Initialize(authenticator *Authenticator) {
|
|||||||
r.router.Use(authenticator.Authenticate("/api/remotes", []string{}))
|
r.router.Use(authenticator.Authenticate("/api/remotes", []string{}))
|
||||||
remotesApi := r.router.Group("/api/remotes")
|
remotesApi := r.router.Group("/api/remotes")
|
||||||
remotesApi.GET("", r.handleGetRemotes)
|
remotesApi.GET("", r.handleGetRemotes)
|
||||||
|
remotesApi.GET("/:id", r.handleGetRemote)
|
||||||
remotesApi.POST("", r.handleCreateRemote)
|
remotesApi.POST("", r.handleCreateRemote)
|
||||||
remotesApi.DELETE("/:id", r.handleDelteRemote)
|
remotesApi.DELETE("/:id", r.handleDelteRemote)
|
||||||
|
|
||||||
@ -42,6 +44,17 @@ func (r *RemoteApiHandler) handleCreateRemote(context echo.Context) error {
|
|||||||
return context.JSON(200, remote)
|
return context.JSON(200, remote)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (r *RemoteApiHandler) handleGetRemote(context echo.Context) error {
|
||||||
|
id := context.Param("id")
|
||||||
|
remote, err := r.remoteManager.GetRemote(id)
|
||||||
|
if err != nil {
|
||||||
|
SendError(500, context, err.Error())
|
||||||
|
log.Error().Err(err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return context.JSON(200, remote)
|
||||||
|
}
|
||||||
|
|
||||||
func (r *RemoteApiHandler) handleGetRemotes(context echo.Context) error {
|
func (r *RemoteApiHandler) handleGetRemotes(context echo.Context) error {
|
||||||
remotes, err := r.remoteManager.GetRemotes()
|
remotes, err := r.remoteManager.GetRemotes()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
@ -36,10 +36,6 @@ function ListManager(props) {
|
|||||||
})
|
})
|
||||||
);
|
);
|
||||||
|
|
||||||
createEffect(() =>
|
|
||||||
console.log(availableItemsFuse().search(availableItemsSearchString()))
|
|
||||||
);
|
|
||||||
|
|
||||||
const selectableAvailableItems = createMemo(() =>
|
const selectableAvailableItems = createMemo(() =>
|
||||||
(availableItemsSearchString()
|
(availableItemsSearchString()
|
||||||
? availableItemsFuse()
|
? availableItemsFuse()
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user