mirror of
https://github.com/Myxelium/Bridge-Multi.git
synced 2026-04-11 14:19:38 +00:00
Initial Browse UI and initial song search
This commit is contained in:
31
src/electron/ipc/SearchHandler.ipc.ts
Normal file
31
src/electron/ipc/SearchHandler.ipc.ts
Normal file
@@ -0,0 +1,31 @@
|
||||
import { IPCHandler } from '../shared/IPCHandler'
|
||||
import Database from '../shared/Database'
|
||||
import { SongSearch, SearchType, SongResult } from '../shared/interfaces/search.interface'
|
||||
import { escape } from 'mysql'
|
||||
|
||||
export default class SearchHandler implements IPCHandler<'song-search'> {
|
||||
event: 'song-search' = 'song-search'
|
||||
// TODO: add method documentation
|
||||
|
||||
async handler(search: SongSearch) {
|
||||
const db = await Database.getInstance()
|
||||
|
||||
return db.sendQuery(this.getSearchQuery(search)) as Promise<SongResult[]>
|
||||
}
|
||||
|
||||
private getSearchQuery(search: SongSearch) {
|
||||
switch(search.type) {
|
||||
case SearchType.Any: return this.getGeneralSearchQuery(search.query)
|
||||
default: return '<<<ERROR>>>' // TODO: add more search types
|
||||
}
|
||||
}
|
||||
|
||||
private getGeneralSearchQuery(searchString: string) {
|
||||
return `
|
||||
SELECT id, name, artist, album, genre, year
|
||||
FROM Song
|
||||
WHERE MATCH (name,artist,album,genre) AGAINST (${escape(searchString)}) > 0
|
||||
LIMIT ${20} OFFSET ${0};
|
||||
` // TODO: add parameters for the limit and offset
|
||||
}
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
import { IPCHandler } from '../shared/IPCHandler'
|
||||
import { TestInput } from '../shared/interfaces/test.interface'
|
||||
|
||||
export default class TestHandler implements IPCHandler<'test-event-A'> {
|
||||
event = 'test-event-A' as 'test-event-A'
|
||||
async handler(data: TestInput) {
|
||||
await new Promise<void>((resolve) => setTimeout(() => resolve(), 3000))
|
||||
|
||||
return `Processed data with value1 = ${data.value1} and value2 + 5 = ${data.value2 + 5}`
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user