narrowed down to one api route and got it working
This commit is contained in:
parent
195f193259
commit
2cc261f072
7 changed files with 626 additions and 1704 deletions
|
@ -1,94 +1,11 @@
|
|||
const Sequelize = require('sequelize');
|
||||
const logger = require('winston');
|
||||
|
||||
function mysql () {
|
||||
this.database = 'default';
|
||||
this.username = 'default';
|
||||
this.password = 'default';
|
||||
this.db = {};
|
||||
this.configure = (config) => {
|
||||
if (!config) {
|
||||
this.configure = (db) => {
|
||||
if (!db) {
|
||||
return console.log('No MySQL config received.');
|
||||
}
|
||||
// configure credentials
|
||||
console.log('configuring mysql credentials...');
|
||||
const {database, username, password} = config;
|
||||
this.database = database;
|
||||
this.username = username;
|
||||
this.password = password;
|
||||
// configure db
|
||||
// set sequelize options
|
||||
const sequelize = new Sequelize(database, username, password, {
|
||||
host : 'localhost',
|
||||
dialect : 'mysql',
|
||||
dialectOptions: {decimalNumbers: true},
|
||||
logging : false,
|
||||
pool : {
|
||||
max : 5,
|
||||
min : 0,
|
||||
idle : 10000,
|
||||
acquire: 10000,
|
||||
},
|
||||
});
|
||||
|
||||
// establish mysql connection
|
||||
sequelize
|
||||
.authenticate()
|
||||
.then(() => {
|
||||
logger.info('Sequelize has established mysql connection successfully.');
|
||||
})
|
||||
.catch(err => {
|
||||
logger.debug('mysqlconfig', { database, username, password });
|
||||
logger.error('Sequelize was unable to connect to the database:', err);
|
||||
});
|
||||
|
||||
// manually add each model to the db object (note: make this dynamic)
|
||||
const db = {};
|
||||
const Certificate = require('models/certificate.js');
|
||||
const Channel = require('models/channel.js');
|
||||
const Claim = require('models/claim.js');
|
||||
const File = require('models/file.js');
|
||||
const Request = require('models/request.js');
|
||||
const User = require('models/user.js');
|
||||
db['Certificate'] = sequelize.import('Certificate', Certificate);
|
||||
db['Channel'] = sequelize.import('Channel', Channel);
|
||||
db['Claim'] = sequelize.import('Claim', Claim);
|
||||
db['File'] = sequelize.import('File', File);
|
||||
db['Request'] = sequelize.import('Request', Request);
|
||||
db['User'] = sequelize.import('User', User);
|
||||
|
||||
// run model.association for each model in the db object that has an association
|
||||
logger.info('associating db models...');
|
||||
Object.keys(db).forEach(modelName => {
|
||||
if (db[modelName].associate) {
|
||||
logger.info('Associating model:', modelName);
|
||||
db[modelName].associate(db);
|
||||
}
|
||||
});
|
||||
|
||||
// add sequelize/Sequelize to db
|
||||
db.sequelize = sequelize;
|
||||
db.Sequelize = Sequelize;
|
||||
// add an 'upsert' method to the db object
|
||||
db.upsert = (Model, values, condition, tableName) => {
|
||||
return Model
|
||||
.findOne({
|
||||
where: condition,
|
||||
})
|
||||
.then(obj => {
|
||||
if (obj) { // update
|
||||
logger.debug(`updating record in db.${tableName}`);
|
||||
return obj.update(values);
|
||||
} else { // insert
|
||||
logger.debug(`creating record in db.${tableName}`);
|
||||
return Model.create(values);
|
||||
}
|
||||
})
|
||||
.catch(function (error) {
|
||||
logger.error(`${tableName}.upsert error`, error);
|
||||
throw error;
|
||||
});
|
||||
};
|
||||
console.log('configuring mysql...');
|
||||
this.db = db;
|
||||
};
|
||||
};
|
||||
|
|
2148
index.js
2148
index.js
File diff suppressed because one or more lines are too long
15
server/models/index.js
Normal file
15
server/models/index.js
Normal file
|
@ -0,0 +1,15 @@
|
|||
const Certificate = require('models/certificate.js');
|
||||
const Channel = require('models/channel.js');
|
||||
const Claim = require('models/claim.js');
|
||||
const File = require('models/file.js');
|
||||
const Request = require('models/request.js');
|
||||
const User = require('models/user.js');
|
||||
|
||||
module.exports = {
|
||||
Certificate,
|
||||
Channel,
|
||||
Claim,
|
||||
File,
|
||||
Request,
|
||||
User,
|
||||
}
|
26
server/routes/apiRoutes/channelShortId.js
Normal file
26
server/routes/apiRoutes/channelShortId.js
Normal file
|
@ -0,0 +1,26 @@
|
|||
const logger = require('winston');
|
||||
// const { details: { host } } = require('siteConfig.js');
|
||||
// const { db } = require('mysqlConfig.js');
|
||||
const { handleErrorResponse } = require('helpers/errorHandlers.js');
|
||||
|
||||
/*
|
||||
|
||||
route to get a short channel id from long channel Id
|
||||
|
||||
*/
|
||||
|
||||
const channelShortIdRoute = (db, host) => {
|
||||
return ({ ip, originalUrl, params }, res) => {
|
||||
console.log('hello from channelShortIdRoute');
|
||||
logger.debug('host:', host);
|
||||
db.Certificate.getShortChannelIdFromLongChannelId(params.longId, params.name)
|
||||
.then(shortId => {
|
||||
res.status(200).json(shortId);
|
||||
})
|
||||
.catch(error => {
|
||||
handleErrorResponse(originalUrl, ip, error, res);
|
||||
});
|
||||
};
|
||||
};
|
||||
|
||||
module.exports = channelShortIdRoute;
|
5
server/routes/apiRoutes/index.js
Normal file
5
server/routes/apiRoutes/index.js
Normal file
|
@ -0,0 +1,5 @@
|
|||
const channelShortId = require('./channelShortId');
|
||||
|
||||
module.exports = {
|
||||
channelShortId,
|
||||
}
|
|
@ -1,18 +1,18 @@
|
|||
const logger = require('winston');
|
||||
const { details: { host } } = require('../../config/siteConfig.js');
|
||||
const { db } = require('../../config/mysqlConfig.js');
|
||||
const { claimNameIsAvailable, checkChannelAvailability, publish } = require('../controllers/publishController.js');
|
||||
const { getClaimList, resolveUri, getClaim } = require('../helpers/lbryApi.js');
|
||||
const { addGetResultsToFileData, createBasicPublishParams, createThumbnailPublishParams, parsePublishApiRequestBody, parsePublishApiRequestFiles, createFileData } = require('../helpers/publishHelpers.js');
|
||||
const errorHandlers = require('../helpers/errorHandlers.js');
|
||||
const { sendGATimingEvent } = require('../helpers/googleAnalytics.js');
|
||||
const { authenticateUser } = require('../auth/authentication.js');
|
||||
const { getChannelData, getChannelClaims, getClaimId } = require('../controllers/serveController.js');
|
||||
const { details: { host } } = require('../../../config/siteConfig.js');
|
||||
const { db } = require('../../../config/mysqlConfig.js');
|
||||
const { claimNameIsAvailable, checkChannelAvailability, publish } = require('../../controllers/publishController.js');
|
||||
const { getClaimList, resolveUri, getClaim } = require('../../helpers/lbryApi.js');
|
||||
const { addGetResultsToFileData, createBasicPublishParams, createThumbnailPublishParams, parsePublishApiRequestBody, parsePublishApiRequestFiles, createFileData } = require('../../helpers/publishHelpers.js');
|
||||
const errorHandlers = require('../../helpers/errorHandlers.js');
|
||||
const { sendGATimingEvent } = require('../../helpers/googleAnalytics.js');
|
||||
const { authenticateUser } = require('../../auth/authentication.js');
|
||||
const { getChannelData, getChannelClaims, getClaimId } = require('../../controllers/serveController.js');
|
||||
|
||||
const NO_CHANNEL = 'NO_CHANNEL';
|
||||
const NO_CLAIM = 'NO_CLAIM';
|
||||
|
||||
const apiRoutes = {
|
||||
const routes = {
|
||||
// route to check whether site has published to a channel
|
||||
channelAvailabilityRoute ({ ip, originalUrl, params: { name } }, res) {
|
||||
const gaStartTime = Date.now();
|
||||
|
@ -25,19 +25,6 @@ const apiRoutes = {
|
|||
errorHandlers.handleErrorResponse(originalUrl, ip, error, res);
|
||||
});
|
||||
},
|
||||
// route to get a short channel id from long channel Id
|
||||
channelShortIdRoute ({ ip, originalUrl, params }, res) {
|
||||
console.log('hello');
|
||||
logger.debug('host:', host);
|
||||
logger.debug('db:', db);
|
||||
db.Certificate.getShortChannelIdFromLongChannelId(params.longId, params.name)
|
||||
.then(shortId => {
|
||||
res.status(200).json(shortId);
|
||||
})
|
||||
.catch(error => {
|
||||
errorHandlers.handleErrorResponse(originalUrl, ip, error, res);
|
||||
});
|
||||
},
|
||||
channelDataRoute ({ ip, originalUrl, body, params }, res) {
|
||||
const channelName = params.channelName;
|
||||
let channelClaimId = params.channelClaimId;
|
||||
|
@ -242,4 +229,4 @@ const apiRoutes = {
|
|||
},
|
||||
};
|
||||
|
||||
module.exports = apiRoutes;
|
||||
module.exports = routes;
|
12
speech.js
12
speech.js
|
@ -1,23 +1,21 @@
|
|||
// const Components = require('./client/components');
|
||||
// const Containers = require('./client/containers');
|
||||
// const Pages = require('./client/pages');
|
||||
const apiRoutes = require('./server/routes/apiRoutes.js');
|
||||
const apiRoutes = require('./server/routes/apiRoutes/');
|
||||
const logger = require('./config/loggerConfig.js');
|
||||
const mysql = require('./config/mysqlConfig');
|
||||
const site = require('./config/siteConfig');
|
||||
const slack = require('./config/slackConfig.js');
|
||||
const passport = require('./server/passport/');
|
||||
const models = require('./server/models/');
|
||||
// const Components = require('./client/components');
|
||||
|
||||
const exports = {
|
||||
// Components,
|
||||
// Containers,
|
||||
// Pages,
|
||||
apiRoutes,
|
||||
logger,
|
||||
mysql,
|
||||
site,
|
||||
slack,
|
||||
passport,
|
||||
models,
|
||||
// Components,
|
||||
};
|
||||
|
||||
module.exports = exports;
|
||||
|
|
Loading…
Reference in a new issue