---
# System prepended metadata

title: Untitled

---

/gateway/disponibilityController

```
const kibana = require('../api/kibana')

const data = [
  {
    key: 'Ativacao Esim',
    parameters: [
      { match: { message_message: 'esim' } },
      { range: {
          "@timestamp": {
            gte: "2022-12-01T00:00:00",
            lte: "now"
          },
        }
      },
    ]
  }
]

const dataSuccess = [
  {
    key: 'Ativacao Esim',
    parameters: [
      { match: { message_message: 'esim' } },
      { match: { level: 'INFO' } },
      { range: {
          "@timestamp": {
            gte: "2022-12-01T00:00:00",
            lte: "now"
          },
        }
      },
    ]
  }
]

module.exports = {
  async getDisponibility(req, res) {
    const { page, limit } = req.body
    Promise.all(data.map(async ({ key, parameters }) => ({
      key,
      ...await kibana.search(parameters, page, limit)
    })))
    .then(resp => res.json(resp))
  },

  async getSuccess(req, res) {
    Promise.all(dataSuccess.map(async ({ key, parameters}) => ({
      key,
      ...await kibana.searchSuccess(parameters)
    })))
    .then(resp => {res.json(resp)})
  }
}

```

/api/kibana/index

```
const { Client } = require('@elastic/elasticsearch')
const client = new Client({
  node: 'http://10.129.200.27:9200'
})

module.exports = {
  async search (parameters, page, limit) {
    try {
      const { body } = await client.search({
        index: 'logstash-**',
        ...(page && { from: page }),
        ...(limit && {size: limit}),
        body: {
          query: {
            bool: { must: [ ...parameters ] }
          }
        },
      },
      { meta: true})
      const { total: { value }, hits } = body.hits
      return {
        total: value,
        hits
      }
    } catch (err) {
      return { error: err.message }
    }
  },

  async searchSuccess (parameters) {
    try {
      const { body } = await client.search({
        index: 'logstash-**',
        body: {
          query: {
            bool: { must: [ ...parameters ] }
          }
        },
      },
      { meta: true})
      const { total: { value }, hits } = body.hits
      return {
        success: value,
        hits
      }
    } catch (err) {
      return { error: err.message }
    }
  }

}

```

/gateway/router

```
router.get('/disponibility/success', passport.isAuthenticated, disponibilityController.getSuccess)
```