const util = require('util')
console.log(util.inspect(res.body, false, null))
console.log(require('util').inspect(res.body, false, null))

Math.random().toString(36).slice(-8)

var express = require('express');
var graphqlHTTP = require('express-graphql');
var { buildSchema } = require('graphql');

var schema = buildSchema(`
  type Query {
    ip: String
  }
`)

function loggingMiddleware(req, res, next) {
  console.log('ip:', req.ip);
  next();
}

var root = {
  ip: function (args, request) {
    return request.ip;
  }
};

var app = express();
app.use(loggingMiddleware);
app.use('/graphql', graphqlHTTP({
  schema: schema,
  rootValue: root,
  graphiql: true,
}));
app.listen(4000);

console.log('Running a GraphQL API server at localhost:4000/graphql');


// map
await Promise.all(
  names.map(async (name) => {
    const AuthModels = {
      "Setting": Setting,
      "User": User,
    }

    const CrmModels = [
      "Client",
      "Status"
    ]

    const model = AuthModels[name]
    if (model) {
      count[name] = await model.count()
    }

    if (CrmModels.includes(name)) {
      let response = await CrmFetch(queryMeta(name))
      count[name] = response.data.meta.count[name]
    }

  })
)


function getMethods(obj) {
  var res = []
  for(var m in obj) {
    if(typeof obj[m] == "function") {
      res.push(m)
    }
  }
  return res
}