removed maintain user, constrained spctra access
This commit is contained in:
@ -217,27 +217,34 @@ async function allDpts() {
|
||||
res.data.forEach(sample => {
|
||||
sampleIds[sample.number] = sample._id;
|
||||
});
|
||||
const dptRegex = /(.*?)_(.*?)_(\d+|[a-zA-Z0-9]+[_.]\d+)(_JDX)?[.]{1,2}(DPT|csv|CSV)/;
|
||||
const dptRegex = /(.*?)_(.*?)_(\d+|[a-zA-Z0-9]+[_.]\d+)(_JDX)?[.]{1,2}(DPT|csv|CSV|JDX)/;
|
||||
const dpts = fs.readdirSync(dptFiles);
|
||||
for (let i in dpts) {
|
||||
let regexInput;
|
||||
const bjRes = /^(Bj[FT]?)\s?([a-z0-9_]*)_JDX.DPT/.exec(dpts[i]);
|
||||
if (bjRes) {
|
||||
if (bjRes) { // correct Bj numbers with space
|
||||
regexInput = `Bj01_${bjRes[1]}${bjRes[2]}_0.DPT`;
|
||||
}
|
||||
else {
|
||||
else { // remove _JDX from name
|
||||
regexInput = dpts[i].replace(/_JDX.*\./, '.');
|
||||
}
|
||||
const regexRes = dptRegex.exec(regexInput);
|
||||
if (regexRes && !sampleIds[regexRes[2]]) { // when sample number includes an additional _x instead of having _x_x for spectrum description
|
||||
regexRes[2] = `${regexRes[2]}_${regexRes[3].split('_')[0]}`;
|
||||
}
|
||||
if (regexRes && !sampleIds[regexRes[2]] && sampleIds[regexRes[2].split('_')[0]]) { // when number_abx does not exist but number
|
||||
dptSampleAddLog.push(`Trying to find ${regexRes[2].split('_')[0]}`);
|
||||
dptSampleAddLog.push(host + '/sample/' + sampleIds[regexRes[2].split('_')[0]]);
|
||||
res = await axios({
|
||||
let baseSample = null;
|
||||
if (regexRes) {
|
||||
baseSample = regexRes[2].split('_')[0];
|
||||
if (baseSample === 'Wa11') { // as Wa11 samples use all the same material
|
||||
baseSample = 'Wa11_B0_1';
|
||||
}
|
||||
}
|
||||
if (regexRes && !sampleIds[regexRes[2]] && sampleIds[baseSample]) { // when number_abx does not exist but number
|
||||
dptSampleAddLog.push(`Trying to find ${baseSample}`);
|
||||
dptSampleAddLog.push(host + '/sample/' + sampleIds[baseSample]);
|
||||
res = await axios({ // get base sample
|
||||
method: 'get',
|
||||
url: host + '/sample/number/' + sampleIds[regexRes[2].split('_')[0]],
|
||||
url: host + '/sample/' + stripSpaces(sampleIds[baseSample]),
|
||||
auth: {
|
||||
username: 'admin',
|
||||
password: 'Abc123!#'
|
||||
@ -245,14 +252,14 @@ async function allDpts() {
|
||||
}).catch(err => {
|
||||
if (err.response) {
|
||||
console.error(err.response.data);
|
||||
errors.push(`DPT Could not fetch sample ${regexRes[2].split('_')[0]}: ${err.response.data}`);
|
||||
errors.push(`DPT Could not fetch sample ${baseSample}: ${JSON.stringify(err.response.data)}`);
|
||||
}
|
||||
});
|
||||
if (res.data) {
|
||||
dptSampleAddLog.push(JSON.stringify(res.data));
|
||||
const data = _.merge(_.pick(res.data, ['color', 'type', 'batch', 'material_id']), {number: regexRes[2], condition: {}, notes: {}});
|
||||
if (res) {
|
||||
const data = _.merge(_.pick(res.data, ['color', 'type', 'batch']),
|
||||
{number: regexRes[2], condition: {}, notes: {}, material_id: res.data.material._id});
|
||||
res = await axios({
|
||||
method: 'get',
|
||||
method: 'post',
|
||||
url: host + '/sample/new',
|
||||
auth: {
|
||||
username: res.data.user,
|
||||
@ -265,16 +272,10 @@ async function allDpts() {
|
||||
errors.push(`DPT Could not save sample ${data}: ${err.response.data}`);
|
||||
}
|
||||
});
|
||||
console.error(res);
|
||||
console.error(data);
|
||||
if (res.data) {
|
||||
dptSampleAddLog.push(`${regexRes[2]} from ${regexRes[2].split('_')[0]}`)
|
||||
dptSampleAddLog.push(`${regexRes[2]} from ${baseSample}`)
|
||||
sampleIds[regexRes[2]] = res.data._id;
|
||||
}
|
||||
else {
|
||||
console.error(res);
|
||||
console.error(data);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (regexRes && sampleIds[regexRes[2]]) { // found matching sample
|
||||
@ -287,6 +288,7 @@ async function allDpts() {
|
||||
measurement_template
|
||||
};
|
||||
data.values.device = regexRes[1];
|
||||
data.values.filename = dpts[i];
|
||||
data.values.dpt = f.split('\r\n').map(e => e.split(',').map(e => parseFloat(e)));
|
||||
let rescale = false;
|
||||
for (let i in data.values.dpt) {
|
||||
@ -321,7 +323,7 @@ async function allDpts() {
|
||||
else {
|
||||
console.log(`Could not find sample for ${dpts[i]}`);
|
||||
if (regexRes) {
|
||||
errors.push(`Could not find sample for ${dpts[i]}; [DEBUG] ${regexRes[2]}, ${!sampleIds[regexRes[2]]}, ${sampleIds[regexRes[2].split('_')[0]]}`);
|
||||
errors.push(`Could not find sample for ${dpts[i]}; [DEBUG] ${regexRes[2]}, ${!sampleIds[regexRes[2]]}, ${sampleIds[baseSample]}`);
|
||||
}
|
||||
else {
|
||||
errors.push(`Could not find sample for ${dpts[i]} (did not match RegEx)`);
|
||||
@ -953,11 +955,12 @@ function customFields (comment, sampleNumber) {
|
||||
}
|
||||
|
||||
function sampleType (type) {
|
||||
const allowedTypes = ['tension rod', 'part', 'granulate'];
|
||||
if (allowedTypes.indexOf(type) < 0) {
|
||||
type = stripSpaces(type).toLowerCase();
|
||||
const allowedTypes = {'tension rod': 'tension rod', 'Zugstab': 'tension rod', 'part': 'part', 'granulate': 'granulate'};
|
||||
if (!allowedTypes[type]) {
|
||||
typeLog.push(type);
|
||||
}
|
||||
return allowedTypes.indexOf(type) >= 0 ? type : 'part';
|
||||
return allowedTypes[type] ? allowedTypes[type] : 'part';
|
||||
}
|
||||
|
||||
function stripSpaces(s) {
|
||||
|
Reference in New Issue
Block a user