when my server starts, I need to fetch data from external API and then save them into my database. This works well, but I have little problem. My function for saving
import { EventFetcher } from './eventFetcher.js'
const eventFetcher = new EventFetcher()
export const reloadEvents = async () => {
const newEventData = await eventFetcher.fetchEvents()
console.log('Aktualizujem udalosti v db...')
eventFetcher.updateLastFetchedData(newEventData)
const response = await fetch('http://localhost:3030/reservations-ms', {
method: 'POST'
})
if (response.ok) {
console.log('Udalosti v databáze aktualizované!')
} else {
console.error('Chyba pri ukladaní udalostí.')
}
}
It makes POST request to my local endpoint, but it doesn't work after I added authentication for this route, because I dont have JWT stored on serverside.
app.service(reservationsMsPath).hooks({
around: {
all: [
authenticate('jwt'),
schemaHooks.resolveExternal(reservationsMsExternalResolver),
schemaHooks.resolveResult(reservationsMsResolver)
}
So my question is, do I need somehow to get token here, or are there any others ways to do this?
I thought something like this would work
import { EventFetcher } from './eventFetcher.js'
import { ReservationsMsService, getOptions } from '../services/reservations-ms/reservations-ms.class.js'
const eventFetcher = new EventFetcher()
const reservationsService = new ReservationsMsService()
export const reloadEvents = async () => {
const newEventData = await eventFetcher.fetchEvents()
console.log('Aktualizujem udalosti v db...')
eventFetcher.updateLastFetchedData(newEventData)
try {
const response = await reservationsService.post(newEventData)
if (response.ok) {
console.log('Udalosti v databáze aktualizované!')
} else {
console.error('Chyba pri ukladaní udalostí.')
}
} catch (error) {
console.error('An error occurred while sending the POST request:', error)
}
}
But now it says
Error: You must provide a Model (the initialized knex object)
You probably don't need to make a request to the server but instead either import the
appobject directly from theappfile or register a setup hook in the app file that does the initialisation that you need: