espchatbotapi
Version:
Un chatbot en español
130 lines (129 loc) • 6.01 kB
JavaScript
const got = require("got")
class Chatbot {
constructor(token,id,contraseñadev){
if(!token) throw new Error('Falta el token.')
if(!id) throw new Error('Falta la id del bot.')
this.token = token
this.id = id
this.contraseñadev = contraseñadev
this.basicurl = 'https://espchatbotapi.seyron.repl.co/api'
this.url = `${this.basicurl}/${this.token}/${this.id}`
this.urldev = `${this.basicurl}/${this.contraseñadev}/`
this.urldev2 = `${this.url}/${this.contraseñadev}/`
}
enseñar(texto,respuesta){
if(!texto) throw new Error('Debe introducir el texto de entrada')
if(!respuesta) throw new Error('Debe decirme la salida al texto de entrada')
return new Promise((resolve, reject) => {
let dta = new URLSearchParams({input:texto,output:respuesta})
if(this.contraseñadev !== undefined){
got.post(`${this.urldev2}?${dta.toString()}`,{json:true}).then(r => {
let datos = r.body
if(datos.error) return reject(datos.error)
resolve(datos.resultado)
}).catch(err => {
return reject("Fallo al interactuar con la api posiblemente este offline.(vuelve a intentarlo)")
})
} else {
got.post(`${this.url}?${dta.toString()}`,{json:true}).then(r => {
let datos = r.body
if(datos.error) return reject(datos.error)
resolve(datos.resultado)
}).catch(err => {
return reject("Fallo al interactuar con la api posiblemente este offline.(vuelve a intentarlo)")
})
}
})
}
obtener(texto){
if(!texto) throw new Error('Debe introducir el texto de entrada')
return new Promise((resolve, reject) => {
let dta = new URLSearchParams({texto:texto})
got.get(`${this.url}?${dta.toString()}`,{json:true}).then(r => {
let datos = r.body
if(datos.error) return reject(datos.error)
resolve(datos.resultado)
}).catch(err => {
return reject("Fallo al interactuar con la api posiblemente este offline.(vuelve a intentarlo)")
})
})
}
borrar(entrada,salida){
if(!entrada) throw new Error('Debe introducir el texto de entrada')
if(!salida) throw new Error('Debe introducir el texto de entrada')
return new Promise((resolve, reject) => {
let dta = new URLSearchParams({input:entrada,output:salida})
got.delete(`${this.url}?${dta.toString()}`,{json:true}).then(r => {
let datos = r.body
if(datos.error) return reject(datos.error)
resolve(datos.resultado)
}).catch(err => {
return reject("Fallo al interactuar con la api posiblemente este offline.(vuelve a intentarlo)")
})
})
}
generartoken(id){
if(!id) throw new Error('Debe introducir la id del usuario')
return new Promise((resolve, reject) => {
let dta = new URLSearchParams({id:id})
got.get(`${this.urldev}/generartoken?${dta.toString()}`,{json:true}).then(r => {
let datos = r.body
if(datos.error) return reject(datos.error)
resolve(datos.resultado)
}).catch(err => {
return reject("Fallo al interactuar con la api posiblemente este offline.(vuelve a intentarlo)")
})
})
}
borrartoken(id){
if(!id) throw new Error('Debe introducir la id del usuario')
return new Promise((resolve, reject) => {
let dta = new URLSearchParams({id:id})
got.get(`${this.urldev}/borrartoken?${dta.toString()}`,{json:true}).then(r => {
let datos = r.body
if(datos.error) return reject(datos.error)
resolve(datos.resultado)
}).catch(err => {
return reject("Fallo al interactuar con la api posiblemente este offline.(vuelve a intentarlo)")
})
})
}
seetoken(id){
if(!id) throw new Error('Debe introducir la id del usuario')
return new Promise((resolve, reject) => {
let dta = new URLSearchParams({id:id})
got.get(`${this.urldev}/token?${dta.toString()}`,{json:true}).then(r => {
let datos = r.body
if(datos.error) return reject(datos.error)
resolve(datos.resultado)
}).catch(err => {
return reject("Fallo al interactuar con la api posiblemente este offline.(vuelve a intentarlo)")
})
})
}
cambiardefault(texto){
if(!texto) throw new Error('Debe introducir el nuevo texto default')
return new Promise((resolve, reject) => {
let dta = new URLSearchParams({texto:texto})
got.put(`${this.url}?${dta.toString()}`,{json:true}).then(r => {
let datos = r.body
if(datos.error) return reject(datos.error)
resolve(datos.resultado)
}).catch(err => {
return reject("Fallo al interactuar con la api posiblemente este offline.(vuelve a intentarlo)")
})
})
}
obtenertodo(){
return new Promise((resolve, reject) => {
got.patch(`${this.url}`,{json:true}).then(r => {
let datos = r.body
if(datos.error) return reject(datos.error)
resolve(datos.resultado)
}).catch(err => {
return reject("Fallo al interactuar con la api posiblemente este offline.(vuelve a intentarlo)")
})
})
}
}
module.exports = Chatbot