Merge pull request #974 from jessopb/fileAvailability

uses CQ-derived outpoint and file list to detect foreign file changes
This commit is contained in:
jessopb 2019-03-26 07:32:13 -04:00 committed by GitHub
commit 13cee683c3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -1,5 +1,9 @@
const logger = require('winston');
const { handleErrorResponse } = require('../../../utils/errorHandlers.js'); const { handleErrorResponse } = require('../../../utils/errorHandlers.js');
const db = require('../../../../models'); const { getFileListFileByOutpoint } = require('server/lbrynet');
const chainquery = require('chainquery').default;
/* /*
@ -10,18 +14,24 @@ const db = require('../../../../models');
const fileAvailability = ({ ip, originalUrl, params }, res) => { const fileAvailability = ({ ip, originalUrl, params }, res) => {
const name = params.name; const name = params.name;
const claimId = params.claimId; const claimId = params.claimId;
db.File logger.debug(`fileAvailability params: name:${name} claimId:${claimId}`);
.findOne({ // TODO: we probably eventually want to check the publishCache for the claimId too,
where: { // and shop the outpoint to file_list.
name, return chainquery.claim.queries
claimId, .resolveClaim(name, claimId)
}, .then(result => {
return `${result.dataValues.transaction_hash_id}:${result.dataValues.vout}`;
})
.then(outpoint => {
logger.debug(`fileAvailability: outpoint: ${outpoint}`);
return getFileListFileByOutpoint(outpoint);
}) })
.then(result => { .then(result => {
if (result) { if (result && result[0]) {
return res.status(200).json({ success: true, data: true }); return res.status(200).json({ success: true, data: true });
} } else {
res.status(200).json({ success: true, data: false }); res.status(200).json({ success: true, data: false });
}
}) })
.catch(error => { .catch(error => {
handleErrorResponse(originalUrl, ip, error, res); handleErrorResponse(originalUrl, ip, error, res);