updated channel long id retrieval to match claims pattern
This commit is contained in:
parent
47a3fb865b
commit
69ebce3efd
5 changed files with 38 additions and 35 deletions
|
@ -1,22 +1,20 @@
|
||||||
const db = require('../../../../models');
|
const db = require('../../../../models');
|
||||||
|
|
||||||
const { returnPaginatedChannelClaims } = require('./channelPagination.js');
|
const { returnPaginatedChannelClaims } = require('./channelPagination.js');
|
||||||
const NO_CHANNEL = 'NO_CHANNEL';
|
|
||||||
|
|
||||||
const getChannelClaims = (channelName, channelClaimId, page) => {
|
const getChannelClaims = (channelName, channelClaimId, page) => {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
|
let longChannelClaimId;
|
||||||
// 1. get the long channel Id (make sure channel exists)
|
// 1. get the long channel Id (make sure channel exists)
|
||||||
db.Certificate.getLongChannelId(channelName, channelClaimId)
|
db.Certificate
|
||||||
.then(longChannelClaimId => {
|
.getLongChannelId(channelName, channelClaimId)
|
||||||
if (!longChannelClaimId) {
|
.then(result => {
|
||||||
return [null, null, null];
|
longChannelClaimId = result;
|
||||||
}
|
return db
|
||||||
// 2. get the short ID and all claims for that channel
|
.Claim
|
||||||
return Promise.all([longChannelClaimId, db.Claim.getAllChannelClaims(longChannelClaimId)]);
|
.getAllChannelClaims(longChannelClaimId);
|
||||||
})
|
})
|
||||||
.then(([longChannelClaimId, channelClaimsArray]) => {
|
.then(channelClaimsArray => {
|
||||||
if (!longChannelClaimId) {
|
|
||||||
return resolve(NO_CHANNEL);
|
|
||||||
}
|
|
||||||
// 3. format the data for the view, including pagination
|
// 3. format the data for the view, including pagination
|
||||||
let paginatedChannelViewData = returnPaginatedChannelClaims(channelName, longChannelClaimId, channelClaimsArray, page);
|
let paginatedChannelViewData = returnPaginatedChannelClaims(channelName, longChannelClaimId, channelClaimsArray, page);
|
||||||
// 4. return all the channel information and contents
|
// 4. return all the channel information and contents
|
||||||
|
|
|
@ -16,12 +16,15 @@ const channelClaims = ({ ip, originalUrl, body, params }, res) => {
|
||||||
const page = params.page;
|
const page = params.page;
|
||||||
getChannelClaims(channelName, channelClaimId, page)
|
getChannelClaims(channelName, channelClaimId, page)
|
||||||
.then(data => {
|
.then(data => {
|
||||||
if (data === NO_CHANNEL) {
|
|
||||||
return res.status(404).json({success: false, message: 'No matching channel was found'});
|
|
||||||
}
|
|
||||||
res.status(200).json({success: true, data});
|
res.status(200).json({success: true, data});
|
||||||
})
|
})
|
||||||
.catch(error => {
|
.catch(error => {
|
||||||
|
if (error === NO_CHANNEL) {
|
||||||
|
return res.status(404).json({
|
||||||
|
success: false,
|
||||||
|
message: 'No matching channel was found',
|
||||||
|
});
|
||||||
|
}
|
||||||
handleErrorResponse(originalUrl, ip, error, res);
|
handleErrorResponse(originalUrl, ip, error, res);
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,22 +1,18 @@
|
||||||
const db = require('../../../../models');
|
const db = require('../../../../models');
|
||||||
const NO_CHANNEL = 'NO_CHANNEL';
|
|
||||||
|
|
||||||
const getChannelData = (channelName, channelClaimId, page) => {
|
const getChannelData = (channelName, channelClaimId) => {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
|
let longChannelClaimId;
|
||||||
// 1. get the long channel Id (make sure channel exists)
|
// 1. get the long channel Id (make sure channel exists)
|
||||||
db.Certificate.getLongChannelId(channelName, channelClaimId)
|
db.Certificate
|
||||||
.then(longChannelClaimId => {
|
.getLongChannelId(channelName, channelClaimId)
|
||||||
if (!longChannelClaimId) {
|
.then(fullClaimId => {
|
||||||
return [null, null, null];
|
longChannelClaimId = fullClaimId;
|
||||||
}
|
return db
|
||||||
// 2. get the short ID and all claims for that channel
|
.Certificate
|
||||||
return Promise.all([longChannelClaimId, db.Certificate.getShortChannelIdFromLongChannelId(longChannelClaimId, channelName)]);
|
.getShortChannelIdFromLongChannelId(fullClaimId, channelName);
|
||||||
})
|
})
|
||||||
.then(([longChannelClaimId, shortChannelClaimId]) => {
|
.then(shortChannelClaimId => {
|
||||||
if (!longChannelClaimId) {
|
|
||||||
return resolve(NO_CHANNEL);
|
|
||||||
}
|
|
||||||
// 3. return all the channel information
|
|
||||||
resolve({
|
resolve({
|
||||||
channelName,
|
channelName,
|
||||||
longChannelClaimId,
|
longChannelClaimId,
|
||||||
|
|
|
@ -14,14 +14,20 @@ const channelData = ({ ip, originalUrl, body, params }, res) => {
|
||||||
const channelName = params.channelName;
|
const channelName = params.channelName;
|
||||||
let channelClaimId = params.channelClaimId;
|
let channelClaimId = params.channelClaimId;
|
||||||
if (channelClaimId === 'none') channelClaimId = null;
|
if (channelClaimId === 'none') channelClaimId = null;
|
||||||
getChannelData(channelName, channelClaimId, 0)
|
getChannelData(channelName, channelClaimId)
|
||||||
.then(data => {
|
.then(data => {
|
||||||
if (data === NO_CHANNEL) {
|
res.status(200).json({
|
||||||
return res.status(404).json({success: false, message: 'No matching channel was found'});
|
success: true,
|
||||||
}
|
data
|
||||||
res.status(200).json({success: true, data});
|
});
|
||||||
})
|
})
|
||||||
.catch(error => {
|
.catch(error => {
|
||||||
|
if (error === NO_CHANNEL) {
|
||||||
|
return res.status(404).json({
|
||||||
|
success: false,
|
||||||
|
message: 'No matching channel was found',
|
||||||
|
});
|
||||||
|
}
|
||||||
handleErrorResponse(originalUrl, ip, error, res);
|
handleErrorResponse(originalUrl, ip, error, res);
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
|
@ -120,7 +120,7 @@ module.exports = (sequelize, { STRING, BOOLEAN, INTEGER, TEXT, DECIMAL }) => {
|
||||||
.then(result => {
|
.then(result => {
|
||||||
switch (result.length) {
|
switch (result.length) {
|
||||||
case 0:
|
case 0:
|
||||||
throw new Error('No channel(s) found with that channel name');
|
return reject(NO_CHANNEL);
|
||||||
default:
|
default:
|
||||||
return resolve(returnShortId(result, longChannelId));
|
return resolve(returnShortId(result, longChannelId));
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue