const ServerFactory = require('./ServerFactory.js')

const createPrimaryRoutes = require('./routes/createPrimaryRoutes.js')

const createServer = (config, plugins) => {
	this.start = async function () {
		const primaryServer = new ServerFactory(createPrimaryRoutes(config, plugins), config.user.server.primary.host, config.user.server.primary.port, config.user.tls.enabled ? config.user.tls.options : void 0)
		primaryServer.startServer().then(server => {
				console.log(`Qortal UI Server started at ${server.info.uri} and listening on ${server.info.address}`)
			}).catch(e => {
				console.error(e)
			})
	}

	return this
}

const serverExports = {
	createServer
}

module.exports = serverExports