Ajout de la connexion entre Electron et backend
This commit is contained in:
66
client/service/LightshowService.js
Normal file
66
client/service/LightshowService.js
Normal file
@@ -0,0 +1,66 @@
|
||||
const { PrismaClient } = require('@prisma/client')
|
||||
const fs = require('fs')
|
||||
|
||||
const prisma = new PrismaClient()
|
||||
const usbLightshow = process.env.LIGHTSHOW_DIR || '';
|
||||
class LigthshowService{
|
||||
|
||||
|
||||
async getAllLigthshow() {
|
||||
const posts = await prisma.Lightshow.findMany({
|
||||
})
|
||||
|
||||
return posts;
|
||||
}
|
||||
|
||||
//
|
||||
// createLigthshow(ligthshow) {
|
||||
// prisma.Ligthshow.create({
|
||||
// data: {
|
||||
// ligthshow,
|
||||
// content,
|
||||
// published: false,
|
||||
// author: { connect: { email: authorEmail } },
|
||||
// },
|
||||
// })
|
||||
// }
|
||||
|
||||
isExistLightshowOnServer(ligthshowName){
|
||||
let audio = this.getAudioFileName(ligthshowName) !== null;
|
||||
let fseq = this.getFseqLigthshow(ligthshowName) !== null;
|
||||
return audio && fseq;
|
||||
}
|
||||
|
||||
#getBaseFile(ligthshowName){
|
||||
return usbLightshow + '/' + ligthshowName
|
||||
}
|
||||
|
||||
getAudioFileName(ligthshowName){
|
||||
let base = this.#getBaseFile(ligthshowName)
|
||||
let extensions = [ 'mp3', 'wav']
|
||||
let filename = null;
|
||||
extensions.forEach((ext) => {
|
||||
let tmpfileName = base + '.' + ext
|
||||
if (fs.existsSync(tmpfileName) && filename === null){
|
||||
filename = tmpfileName;
|
||||
}else if (fs.existsSync(tmpfileName) && filename !== null){
|
||||
throw new Error('Multiple audio file for the same Lightshow')
|
||||
}
|
||||
})
|
||||
return filename;
|
||||
|
||||
}
|
||||
|
||||
getFseqLigthshow(ligthshowName){
|
||||
let filename = null;
|
||||
let base2 = usbLightshow + '/' + ligthshowName
|
||||
let tmp = base2 + '.fseq'
|
||||
if (fs.existsSync(tmp)){
|
||||
filename = tmp;
|
||||
}
|
||||
return filename;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
module.exports = LigthshowService
|
||||
Reference in New Issue
Block a user