added a migration for File table
This commit is contained in:
parent
0f6193b450
commit
2d7dbdc8a0
5 changed files with 116 additions and 63 deletions
|
@ -1,5 +1,7 @@
|
|||
module.exports = (fileInfo, getResult) => {
|
||||
const addGetResultsToFileData = (fileInfo, getResult) => {
|
||||
fileInfo.fileName = getResult.file_name;
|
||||
fileInfo.filePath = getResult.download_path;
|
||||
return fileInfo;
|
||||
};
|
||||
|
||||
module.exports = addGetResultsToFileData;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
module.exports = ({ name, claimId, outpoint, height, address, nsfw, contentType }) => {
|
||||
const createFileData = ({ name, claimId, outpoint, height, address, nsfw, contentType }) => {
|
||||
return {
|
||||
name,
|
||||
claimId,
|
||||
|
@ -11,3 +11,5 @@ module.exports = ({ name, claimId, outpoint, height, address, nsfw, contentType
|
|||
nsfw,
|
||||
};
|
||||
};
|
||||
|
||||
module.exports = createFileData;
|
||||
|
|
|
@ -13,23 +13,35 @@ const db = require('../../../../models');
|
|||
const claimGet = ({ ip, originalUrl, params }, res) => {
|
||||
const name = params.name;
|
||||
const claimId = params.claimId;
|
||||
let fileData;
|
||||
let resolveResult;
|
||||
let getResult;
|
||||
let message;
|
||||
let completed;
|
||||
// resolve the claim
|
||||
db.Claim.resolveClaim(name, claimId)
|
||||
.then(resolveResult => {
|
||||
.then(result => {
|
||||
// make sure a claim actually exists at that uri
|
||||
if (!resolveResult) {
|
||||
if (!result) {
|
||||
throw new Error('No matching uri found in Claim table');
|
||||
}
|
||||
let fileData = createFileData(resolveResult);
|
||||
// get the claim
|
||||
return Promise.all([fileData, getClaim(`${name}#${claimId}`)]);
|
||||
resolveResult = result;
|
||||
return getClaim(`${name}#${claimId}`);
|
||||
})
|
||||
.then(([ fileData, getResult ]) => {
|
||||
.then(result => {
|
||||
getResult = result;
|
||||
fileData = createFileData(resolveResult);
|
||||
fileData = addGetResultsToFileData(fileData, getResult);
|
||||
return Promise.all([db.upsert(db.File, fileData, {name, claimId}, 'File'), getResult]);
|
||||
const upsertCriteria = { name, claimId};
|
||||
return db.upsert(db.File, fileData, upsertCriteria, 'File');
|
||||
})
|
||||
.then(([ fileRecord, {message, completed} ]) => {
|
||||
res.status(200).json({ success: true, message, completed });
|
||||
.then(() => {
|
||||
({ message, completed } = getResult);
|
||||
res.status(200).json({
|
||||
success: true,
|
||||
message,
|
||||
completed,
|
||||
});
|
||||
})
|
||||
.catch(error => {
|
||||
handleErrorResponse(originalUrl, ip, error, res);
|
||||
|
|
|
@ -1,34 +1,88 @@
|
|||
module.exports = {
|
||||
up: (queryInterface, Sequelize) => {
|
||||
up: (queryInterface, { INTEGER }) => {
|
||||
// logic for transforming into the new state
|
||||
const changeOne = queryInterface.addColumn(
|
||||
return Promise.all([
|
||||
queryInterface.addColumn(
|
||||
'File',
|
||||
'fileHeight',
|
||||
{
|
||||
type : INTEGER,
|
||||
allowNull: false,
|
||||
default : 0,
|
||||
}
|
||||
),
|
||||
queryInterface.addColumn(
|
||||
'File',
|
||||
'fileWidth',
|
||||
{
|
||||
type : INTEGER,
|
||||
allowNull: false,
|
||||
default : 0,
|
||||
}
|
||||
),
|
||||
queryInterface.removeColumn(
|
||||
'File',
|
||||
'address',
|
||||
),
|
||||
queryInterface.removeColumn(
|
||||
'File',
|
||||
'height',
|
||||
),
|
||||
queryInterface.removeColumn(
|
||||
'File',
|
||||
'nsfw',
|
||||
),
|
||||
queryInterface.removeColumn(
|
||||
'File',
|
||||
'trendingEligible',
|
||||
),
|
||||
]);
|
||||
},
|
||||
down: (queryInterface, { BOOLEAN, INTEGER, STRING }) => {
|
||||
return Promise.all([
|
||||
queryInterface.removeColumn(
|
||||
'File',
|
||||
'fileHeight',
|
||||
),
|
||||
queryInterface.removeColumn(
|
||||
'File',
|
||||
'fileWidth',
|
||||
),
|
||||
queryInterface.addColumn(
|
||||
'File',
|
||||
'address',
|
||||
{
|
||||
type : STRING,
|
||||
allowNull: false,
|
||||
}
|
||||
),
|
||||
queryInterface.addColumn(
|
||||
'File',
|
||||
'height',
|
||||
{
|
||||
type : Sequelize.INTEGER,
|
||||
type : INTEGER,
|
||||
allowNull: false,
|
||||
default : 0,
|
||||
}
|
||||
);
|
||||
const changeTwo = queryInterface.addColumn(
|
||||
),
|
||||
queryInterface.addColumn(
|
||||
'File',
|
||||
'width',
|
||||
'nsfw',
|
||||
{
|
||||
type : Sequelize.INTEGER,
|
||||
type : BOOLEAN,
|
||||
allowNull : false,
|
||||
defaultValue: false,
|
||||
}
|
||||
);
|
||||
return Promise.all([changeOne, changeTwo]);
|
||||
},
|
||||
down: (queryInterface, Sequelize) => {
|
||||
// logic for reverting the changes
|
||||
const reversionOne = queryInterface.removeColumn(
|
||||
),
|
||||
queryInterface.addColumn(
|
||||
'File',
|
||||
'height'
|
||||
);
|
||||
const reversionTwo = queryInterface.removeColumn(
|
||||
'File',
|
||||
'width',
|
||||
);
|
||||
return Promise.all([reversionOne, reversionTwo]);
|
||||
'trendingEligible',
|
||||
{
|
||||
type : BOOLEAN,
|
||||
allowNull : false,
|
||||
defaultValue: true,
|
||||
}
|
||||
),
|
||||
]);
|
||||
},
|
||||
};
|
||||
|
|
|
@ -10,15 +10,16 @@ module.exports = (sequelize, { STRING, BOOLEAN, INTEGER }) => {
|
|||
type : STRING,
|
||||
allowNull: false,
|
||||
},
|
||||
address: {
|
||||
type : STRING,
|
||||
allowNull: false,
|
||||
},
|
||||
outpoint: {
|
||||
type : STRING,
|
||||
allowNull: false,
|
||||
},
|
||||
height: {
|
||||
fileHeight: {
|
||||
type : INTEGER,
|
||||
allowNull: false,
|
||||
default : 0,
|
||||
},
|
||||
fileWidth: {
|
||||
type : INTEGER,
|
||||
allowNull: false,
|
||||
default : 0,
|
||||
|
@ -34,16 +35,6 @@ module.exports = (sequelize, { STRING, BOOLEAN, INTEGER }) => {
|
|||
fileType: {
|
||||
type: STRING,
|
||||
},
|
||||
nsfw: {
|
||||
type : BOOLEAN,
|
||||
allowNull : false,
|
||||
defaultValue: false,
|
||||
},
|
||||
trendingEligible: {
|
||||
type : BOOLEAN,
|
||||
allowNull : false,
|
||||
defaultValue: true,
|
||||
},
|
||||
},
|
||||
{
|
||||
freezeTableName: true,
|
||||
|
@ -55,13 +46,5 @@ module.exports = (sequelize, { STRING, BOOLEAN, INTEGER }) => {
|
|||
File.hasOne(db.Claim);
|
||||
};
|
||||
|
||||
File.getRecentClaims = function () {
|
||||
return this.findAll({
|
||||
where: { nsfw: false, trendingEligible: true },
|
||||
order: [['createdAt', 'DESC']],
|
||||
limit: 25,
|
||||
});
|
||||
};
|
||||
|
||||
return File;
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue