Commit 8883a9d1 authored by Daniel Caillibaud's avatar Daniel Caillibaud

fix lint

parent c79ca697
import sjt from 'sesajstools'
import {editable, listes, listesOrdonnees, typePerso} from '../../server/ressource/config'
const { hasProp } = sjt
/**
* Les listes sous forme de tableaux ordonnés avec label & value
......@@ -8,7 +10,7 @@ import {editable, listes, listesOrdonnees, typePerso} from '../../server/ressour
const formattedLists = {}
Object.entries(listes).forEach(([key, values]) => {
if (listesOrdonnees.hasOwnProperty(key)) {
if (hasProp(listesOrdonnees, key)) {
formattedLists[key] = listesOrdonnees[key].map(n => ({
label: values[n],
value: n
......
import {isEmpty} from 'lodash'
import sjt from 'sesajstools'
const { hasProp } = sjt
const requiredText = 'Ce champ est obligatoire'
......@@ -14,7 +16,7 @@ const validate = ({
})
jsonFields.forEach(key => {
if (values.hasOwnProperty(key)) {
if (hasProp(values, key)) {
const value = values[key]
if (typeof value === 'string') {
try {
......
......@@ -39,9 +39,9 @@
require('client-react/styles/display.scss')
const { hasProp, isFunction, isString, isUrlAbsolute, stringify } = require('sesajstools')
const dom = require('sesajstools/dom')
const log = require('sesajstools/utils/log')
const sjt = require('sesajstools')
const sjtUrl = require('sesajstools/http/url')
const xhr = require('sesajstools/http/xhr')
const {addSesatheques, getBaseUrl} = require('sesatheque-client/src/sesatheques')
......@@ -91,9 +91,9 @@ function addResultatCallback (ressource, options) {
// pour envoyer les résultats, on regarde si on nous fourni une url ou une fct ou un nom de message
// on prend en callback par ordre de priorité resultatCallback, urlResultatCallback, resultatMessageAction+
if (options.resultatCallback && sjt.isFunction(options.resultatCallback)) {
if (options.resultatCallback && isFunction(options.resultatCallback)) {
resultatListener = options.resultatCallback
} else if (options.urlResultatCallback && sjt.isUrlAbsolute(options.urlResultatCallback)) {
} else if (options.urlResultatCallback && isUrlAbsolute(options.urlResultatCallback)) {
// callback ajax
resultatListener = (resultat) => {
const url = options.urlResultatCallback
......@@ -111,7 +111,7 @@ function addResultatCallback (ressource, options) {
})
}
}
} else if (options && options.resultatMessageAction && sjt.isString(options.resultatMessageAction)) {
} else if (options && options.resultatMessageAction && isString(options.resultatMessageAction)) {
// callback message
resultatListener = (resultat) => sendResultatMessage(options, resultat)
} else if (isDebugMode) {
......@@ -156,7 +156,7 @@ function feedback (retour, divFeedback) {
page.addError(retour.error)
} else if ((retour && (retour.ok && retour.ok === true)) || (retour.success && retour.success === true)) {
feedbackOk(divFeedback)
} else if (retour && (retour.hasOwnProperty('ok') || retour.hasOwnProperty('success'))) {
} else if (retour && (hasProp(retour, 'ok') || hasProp(retour, 'success'))) {
feedbackKo(divFeedback)
page.addError("Une erreur est survenue dans l'enregistrement du résultat")
} else {
......@@ -187,7 +187,7 @@ function feedbackKo (divFeedback) {
*/
function getResultat (result, ressource, options) {
// on reçoit parfois des refs circulaires, faut nettoyer… ça clone au passage
result = JSON.parse(sjt.stringify(result))
result = JSON.parse(stringify(result))
const resultat = new Resultat(result)
// pour l'envoi au unload on ajoute ça
if (options.urlResultatCallback && result.deferSync) resultat.deferSync = result.deferSync
......@@ -231,7 +231,7 @@ function load (ressource, options, next) {
// On vire le titre si on nous le demande via les options ou un param dans l'url
if (
(options.hasOwnProperty('showTitle') && !options.showTitle) ||
(hasProp(options, 'showTitle') && !options.showTitle) ||
/\?.*showTitle=0/.test(wd.URL) ||
/\/apercevoir\//.test(wd.URL) ||
/\?(.+&)?layout=iframe/.test(wd.URL)
......
......@@ -29,7 +29,7 @@
* pour une explication en français)
*/
'use strict'
const { hasProp } = require('sesajstools')
var dom = require('sesajstools/dom')
var log = require('sesajstools/utils/log')
......@@ -220,7 +220,7 @@ try {
else if (config === 'full') config = fullConfig
// on ajoute ces boutons
for (var btn in config) {
if (config.hasOwnProperty(btn) && config[btn]) {
if (hasProp(config, btn) && config[btn]) {
addButton(mqButtons, btn)
}
}
......
......@@ -33,7 +33,7 @@
/* eslint-disable camelcase */
var dom = require('sesajstools/dom')
var sjt = require('sesajstools')
const { hasProp, isArray, isString } = require('sesajstools')
var log = require('sesajstools/utils/log')
var page = require('../../page/index')
......@@ -46,7 +46,7 @@ var swf = require('../../display/swf')
* @param params le contenu de ressource.parametres.xml, qui est du json !!
*/
function getXmlParam (params) {
if (!sjt.isArray(params.series)) {
if (!isArray(params.series)) {
throw new Error('Aucune série à traiter')
}
......@@ -296,7 +296,7 @@ function getOperations (serie) {
// determination du résultat de l'opération
// - attention, dans le cas d'un quotient, c'est la partie entière du quotient qui constitue le résultat
if (!nombres_generes[0].hasOwnProperty('valeur')) {
if (!hasProp(nombres_generes[0], 'valeur')) {
throw new Error("Le premier nombre généré n'a pas de valeur")
}
......@@ -417,7 +417,7 @@ function xmlGenerate (o) {
* @returns {number}
*/
function nettoie_nombre (nb) {
if (sjt.isString(nb)) return Number(nb.replace(/,/g, '.').replace(/\s/g, ''))
if (isString(nb)) return Number(nb.replace(/,/g, '.').replace(/\s/g, ''))
else return Number(nb)
}
......@@ -491,7 +491,7 @@ function genere_position_liste_liee (nombre) {
* @return {Integer} Le nombre généré dans
*/
function genere_intervalle (nombre) {
if (!nombre.hasOwnProperty('debut') || !nombre.hasOwnProperty('fin') || nombre.fin < nombre.debut) {
if (!hasProp(nombre, 'debut') || !hasProp(nombre, 'fin') || nombre.fin < nombre.debut) {
throw new Error("Paramètres d'intervalle incorrects")
}
return rand(nombre.debut, nombre.fin)
......
......@@ -30,6 +30,7 @@
*/
'use strict'
const { hasProp } = require('sesajstools')
/**
* Un retour d'une api http qui enregistre des Resultat (surtout pour documenter le format utilisé dans sesatheque|sesalab)
......@@ -43,7 +44,7 @@ function Feedback (values) {
* @type {boolean}
*/
this.ok = !!values.ok
if (values.hasOwnProperty('success')) {
if (hasProp(values, 'success')) {
/**
* Alternative à la propriété ok
* @type {boolean}
......
......@@ -30,9 +30,10 @@
*/
'use strict'
const _ = require('lodash')
const { hasProp } = require('sesajstools')
var FormChoice = require('./FormChoice')
var _ = require('lodash')
const FormChoice = require('./FormChoice')
/**
* Un champ de FormGroup
......@@ -179,7 +180,7 @@ FormField.prototype.addChoice = function addChoice (choice) {
if (this.id && !choice.id) choice.id = this.id + i
// et on ajoute les selected s'il y en a (comparaison avec cast en string)
if (
choice.hasOwnProperty('value') &&
hasProp(choice, 'value') &&
this.selectedValues &&
this.selectedValues.length &&
_.includes(this.selectedValues, String(choice.value))
......
......@@ -36,6 +36,7 @@
const bodyParser = require('body-parser')
const express = require('express')
const moment = require('moment')
const { hasProp } = require('sesajstools')
const tools = require('./lib/tools')
const config = require('./config')
......@@ -57,7 +58,7 @@ function addBodyParsers (rail) {
if (!bodyParserSettings.limit) bodyParserSettings.limit = '10mb'
// ça c'est juste pour urlencoded, à priori on devrait pouvoir avoir des tableaux avec false
// mais ça plante par ex sur un post de form avec `categories[2]: true`
if (!bodyParserSettings.hasOwnProperty('extended')) bodyParserSettings.extended = true
if (!hasProp(bodyParserSettings, 'extended')) bodyParserSettings.extended = true
const jsonMiddleware = express.json(bodyParserSettings)
const urlencodedMiddleware = express.urlencoded(bodyParserSettings)
const textMiddleware = bodyParser.text(bodyParserSettings)
......
......@@ -30,6 +30,7 @@
*/
'use strict'
const { hasProp } = require('sesajstools')
/**
* Une série de compteurs, chaque clé étant un compteur pouvant être incrémenté, décrémenté ou supprimé
......@@ -48,7 +49,7 @@ function CounterMulti () {
* @param key
*/
CounterMulti.prototype.inc = function (key) {
if (this.hasOwnProperty(key)) this[key]++
if (hasProp(this, key)) this[key]++
else {
this[key] = 1
this.length++
......@@ -60,7 +61,7 @@ CounterMulti.prototype.inc = function (key) {
* @param key
*/
CounterMulti.prototype.dec = function (key) {
if (this.hasOwnProperty(key)) this[key]--
if (hasProp(this, key)) this[key]--
else {
this[key] = -1
this.length++
......@@ -72,7 +73,7 @@ CounterMulti.prototype.dec = function (key) {
* @param key
*/
CounterMulti.prototype.delete = function (key) {
if (this.hasOwnProperty(key)) delete this[key]
if (hasProp(this, key)) delete this[key]
this.length--
}
......@@ -83,7 +84,7 @@ CounterMulti.prototype.delete = function (key) {
CounterMulti.prototype.total = function () {
var total = 0
for (var key in this) {
if (this.hasOwnProperty(key) && key !== 'length') total += this[key]
if (hasProp(this, key) && key !== 'length') total += this[key]
}
return total
}
......
......@@ -32,6 +32,7 @@
'use strict'
const moment = require('moment')
const util = require('util')
const { hasProp } = require('sesajstools')
/**
* Vérifie qu'une valeur est entière dans l'intervalle donné et recadre sinon (avec un message dans le log d'erreur)
......@@ -193,7 +194,7 @@ function linkQs (path, texte, args) {
if (args) {
var paires = []
for (var p in args) {
if (args.hasOwnProperty(p)) paires.push(p + '=' + encodeURIComponent(args[p]))
if (hasProp(args, p)) paires.push(p + '=' + encodeURIComponent(args[p]))
}
if (paires.length) path += '?' + paires.join('&')
}
......
......@@ -35,6 +35,8 @@
// (et on préfère son comportement sur les params multiples)
const querystring = require('querystring')
const {getNormalizedGrabOptions} = require('./normalize')
const { hasProp } = require('sesajstools')
const {baseUrl} = require('./config')
// fonctions privées
......@@ -51,7 +53,7 @@ const {baseUrl} = require('./config')
*/
function errorHandler (errorMessage, isStrict, value = '') {
if (typeof isStrict === 'object') {
isStrict = isStrict.hasOwnProperty('strict') ? !!isStrict.strict : true
isStrict = hasProp(isStrict, 'strict') ? !!isStrict.strict : true
}
if (isStrict) throw new Error(errorMessage)
console.error(new Error(errorMessage))
......@@ -185,7 +187,7 @@ function split (url) {
*/
function update (url, args, options) {
if (typeof options !== 'object') options = {}
const isStrict = options.hasOwnProperty('strict') ? options.strict : true
const isStrict = hasProp(options, 'strict') ? options.strict : true
// checks
if (!url) return errorHandler('Pas d’url fournie', isStrict)
if (typeof url !== 'string') return errorHandler('Url fournie invalide', isStrict)
......
......@@ -32,6 +32,7 @@
'use strict'
const flow = require('an-flow')
const { hasProp } = require('sesajstools')
/**
* Répond sur certaines requetes OPTIONS
......@@ -112,10 +113,10 @@ module.exports = function (component) {
// on peut passer aux autres propriétés du groupe
}).seq(function (groupe) {
// les booléens
if (data.hasOwnProperty('ouvert')) groupe.ouvert = Boolean(data.ouvert)
if (data.hasOwnProperty('public')) groupe.public = Boolean(data.public)
if (hasProp(data, 'ouvert')) groupe.ouvert = Boolean(data.ouvert)
if (hasProp(data, 'public')) groupe.public = Boolean(data.public)
// description
if (data.hasOwnProperty('description')) groupe.description = data.description
if (hasProp(data, 'description')) groupe.description = data.description
// et les gestionnaires à ajouter éventuellement, on shunt si les deux champs sont vides
// (si seul l'un des deux est vide ça tentera le chargement et renverra une erreur)
if (!data.newGestionnairePid && !data.newGestionnaireNom) return this(null, groupe)
......
......@@ -32,6 +32,7 @@
'use strict'
const dns = require('dns')
const ip = require('ip')
const { hasProp } = require('sesajstools')
const sjtObj = require('sesajstools/utils/object')
const config = require('../config')
......@@ -458,7 +459,7 @@ module.exports = function (component) {
*/
function getTokenValue (context, token) {
let value
if (context && token && context.session.tokens && context.session.tokens.hasOwnProperty(token)) {
if (context && token && context.session.tokens && hasProp(context.session.tokens, token)) {
value = context.session.tokens[token]
delete context.session.tokens[token]
}
......
......@@ -34,6 +34,7 @@
const _ = require('lodash')
const flow = require('an-flow')
const {merge} = require('sesajstools/utils/object')
const {hasProp} = require('sesajstools')
const {userError} = require('../../utils')
const {looksLikePid} = require('../../utils/validators')
......@@ -279,8 +280,9 @@ module.exports = function (component) {
function updateOrCreate (personne, next) {
function checkUpdate (personne, personneNew, next) {
let needUpdate = false
// eslint-disable-next-line no-unused-vars
for (const prop in personneNew) {
if (personneNew.hasOwnProperty(prop) && !_.isEqual(personne[prop], personneNew[prop])) {
if (hasProp(personneNew, prop) && !_.isEqual(personne[prop], personneNew[prop])) {
needUpdate = true
// pour groupesMembre on fusionne, histoire de pas écraser les groupes locaux
// par des groupes donnés par l'authentification
......
......@@ -30,10 +30,11 @@
*/
'use strict'
const {hasProp} = require('sesajstools')
const Ressource = require('../../constructors/Ressource')
const ressourceSchema = require('./EntityRessource.schema')
const properties = {...ressourceSchema.properties, dateArchivage: {instanceof: 'Date'}}
const required = [...ressourceSchema.required, 'dateArchivage']
const archiveSchema = {...ressourceSchema, properties, required}
......@@ -50,7 +51,7 @@ module.exports = function (component) {
*/
EntityArchive.construct(function (data) {
if (!data) throw Error('constructeur d’archive appelé sans ressource ni archive')
if (!data.rid || !data.hasOwnProperty('version')) throw Error('rid et version sont obligatoires pour archiver une ressource')
if (!data.rid || !hasProp(data, 'version')) throw Error('rid et version sont obligatoires pour archiver une ressource')
const ressource = new Ressource(data)
Object.assign(this, ressource)
......
......@@ -31,7 +31,7 @@
'use strict'
const uuid = require('an-uuid')
const {exists, getRidComponents} = require('sesatheque-client/dist/server/sesatheques')
const {stringify} = require('sesajstools')
const {hasProp, stringify} = require('sesajstools')
const htmlToText = require('html-to-text')
const tools = require('../lib/tools')
......@@ -66,7 +66,7 @@ module.exports = function (component) {
// mais après on ne peut plus ajouter de propriété dans afterStore, pas trouvé pourquoi…
// => TypeError: Cannot assign to read only property 'rid' of object '#<Entity>'
if (!this.hasOwnProperty('rid')) {
if (!hasProp(this, 'rid')) {
Object.defineProperty(this, 'rid', {
writable: true,
enumerable: true,
......@@ -252,7 +252,7 @@ module.exports = function (component) {
// on génère la clé de lecture si elle manque, on la vire si elle n'est plus nécessaire
if (this.publie && !this.restriction) {
// public
if (this.hasOwnProperty('cle')) delete this.cle
if (hasProp(this, 'cle')) delete this.cle
} else {
// prive
if (!this.cle) this.cle = uuid()
......
......@@ -31,8 +31,10 @@
'use strict'
const {hasProp} = require('sesajstools')
const {getBaseUrl, getComponents} = require('sesatheque-client/dist/server/sesatheques')
const appConfig = require('../config')
const myBaseId = appConfig.application.baseId
const routes = appConfig.components.ressource.constantes.routes
......@@ -84,7 +86,7 @@ module.exports = function (component) {
*/
$routes.getAbs = function (action, ressource, context) {
let route
if (routes.hasOwnProperty(action)) {
if (hasProp(routes, action)) {
route = '/'
let id
let isPublic = true
......
......@@ -31,6 +31,7 @@
'use strict'
const flow = require('an-flow')
const {hasProp} = require('sesajstools')
const {getRidComponents} = require('sesatheque-client/dist/server/sesatheques')
const config = require('../../config')
......@@ -164,20 +165,20 @@ module.exports = {
*/
function cleanItem (item) {
let hasChanged = false
if (item.hasOwnProperty('restriction')) {
if (hasProp(item, 'restriction')) {
if (item.restriction) {
log.dataError(`item restreint dans l’arbre ${currentArbre}`, item)
hasChanged = true
item.restriction = 0
}
} else if (item.hasOwnProperty('public')) {
} else if (hasProp(item, 'public')) {
if (!item.public) {
log.dataError(`item privé dans l’arbre ${currentArbre}`, item)
hasChanged = true
item.public = true
}
}
if (item.hasOwnProperty('publie') && !item.publie) {
if (hasProp(item, 'publie') && !item.publie) {
log.dataError(`item privé dans l’arbre ${currentArbre}`, item)
hasChanged = true
item.publie = true
......
......@@ -32,6 +32,7 @@
const flow = require('an-flow')
const uuid = require('an-uuid')
const {hasProp} = require('sesajstools')
const updateNum = __filename.substring(__dirname.length + 1, __filename.length - 3)
const updateLog = require('an-log')('update' + updateNum)
......@@ -184,7 +185,7 @@ module.exports = {
}).seqEach(function (ressource) {
let needStore = false
const cleanExo = (exo) => {
if (exo.hasOwnProperty('$droits')) {
if (hasProp(exo, '$droits')) {
delete exo.$droits
needStore = true
}
......
......@@ -10,6 +10,7 @@ dependencies:
an-uuid: src.sesamath.net/an-uuid/ed6af31c2d6f526d1108c0a7cfebfdcb9868ff29
body-parser: 1.19.0
connected-react-router: 5.0.1_670e3f5990800090610dd2dbdc34c8ec
core-js: 3.2.1
elementtree: 0.1.7
express: 4.17.1
glob: 7.1.4
......@@ -39,7 +40,6 @@ dependencies:
redux: 4.0.1
redux-form: 7.4.2_f114d899b0c931a12c8e6145cdc60cd3
redux-thunk: 2.3.0
regenerator-runtime: 0.13.3
request: 2.88.0
roboto-fontface: 0.10.0
sesajstools: framagit.org/Sesamath/sesajstools/ac6283ba39b63def7e316a1f1c813915656c401e
......@@ -65,7 +65,6 @@ devDependencies:
chai-as-promised: 7.1.1_chai@4.2.0
clean-webpack-plugin: 3.0.0_webpack@4.39.2
copy-webpack-plugin: 5.0.4_webpack@4.39.2
core-js: 3.2.1
css-loader: 3.2.0_webpack@4.39.2
enzyme: 3.10.0
enzyme-adapter-react-16: 1.14.0_b543d0f872e4d79795800943b57d0a25
......@@ -2903,7 +2902,6 @@ packages:
resolution:
integrity: sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=
/core-js/3.2.1:
dev: true
requiresBuild: true
resolution:
integrity: sha512-Qa5XSVefSVPRxy2XfUC13WbvqkxhkwB3ve+pgCQveNgYzbM/UxZeu1dcOX/xr4UmfUd+muuvsaxilQzCyUurMw==
......@@ -11377,7 +11375,6 @@ specifiers:
redux: 4.0.1
redux-form: 7.4.2
redux-thunk: 2.3.0
regenerator-runtime: ^0.13.2
request: ^2.88.0
roboto-fontface: ^0.10.0
sass-loader: ^7.1.0
......
......@@ -42,7 +42,7 @@ if (nb === 0) print('Aucun doublon de clé')
// il faut aller remplir tous les rid vides…
// on doit récupérer notre baseId, mais on a pas de require… on va regarder en base
let cursor = db.EntityRessource.find()
const cursor = db.EntityRessource.find()
let baseId
while (cursor.hasNext() && !baseId) {
const r = cursor.next()
......
......@@ -7,7 +7,7 @@ db.EntityRessource.find({type: 'ec2'}).sort({dateCreation: 1}).forEach(r => {
else if (data.parametres.swf) msg = `swf ${data.parametres.swf}`
else msg = 'none ' + JSON.stringify(data.parametres)
} else {
msg = `noParameters`
msg = 'noParameters'
}
print(r._id, msg, r.dateCreation, r.titre)
})
......@@ -110,7 +110,7 @@ var argv = process.argv.slice(2)
if (argv[0] === '--log') {
logfile = argv[1]
}
var writeStream = fs.createWriteStream(logfile, {'flags': 'a'})
var writeStream = fs.createWriteStream(logfile, {flags: 'a'})
var nb = 25
var lastArbre
......
......@@ -79,7 +79,7 @@ function dumpDup (next) {
var id = 0
kdb.raw(query).exec(function (error, rows) {
if (error) log.error(error)
var results = rows[ 0 ]
var results = rows[0]
if (results.length === maxDumps) log('Les résultats ont été limités à ' + maxDumps)
results.forEach(function (row) {
if (row.id !== id) {
......
......@@ -93,8 +93,8 @@ function parseIds (idsFound) {
kLabomep.raw(query + ' WHERE bib_id = ' + id).exec(function (error, rows) {
try {
if (error) throw error
if (rows[ 0 ] && rows[ 0 ][ 0 ]) {
row = rows[ 0 ][ 0 ]
if (rows[0] && rows[0][0]) {
row = rows[0][0]
// faut voir si on complète avec les infos de oldBibli
if (checkOldBibli) {
if (!row.bib_descriptif || !row.bib_commentaire) {
......@@ -102,8 +102,8 @@ function parseIds (idsFound) {
rows) {
var result
if (error) throw error
if (rows[ 0 ]) {
result = rows[ 0 ][ 0 ]
if (rows[0]) {
result = rows[0][0]
if (result && !row.descriptif && result.description) row.descriptif = result.description
if (result && !row.commentaire && result.commentaires) row.commentaire = result.commentaires
} else {
......
......@@ -62,16 +62,16 @@ function getMepModele (mepRow) {
*/
function getLangue (langueId) {
var corres = {
'ar': 'ara',
'br': 'bre',
'ca': 'cat',
'de': 'deu',
'en': 'eng',
'es': 'spa',
'eu': 'eus',
'fr': 'fra',
'it': 'ita',
'pt': 'por'
ar: 'ara',
br: 'bre',
ca: 'cat',
de: 'deu',
en: 'eng',
es: 'spa',
eu: 'eus',
fr: 'fra',
it: 'ita',
pt: 'por'
}
if (corres[langueId]) {
return corres[langueId]
......
......@@ -67,16 +67,16 @@ fluxFile.seqEach(function (file) {
}).seq(function () {
log('tout semble terminé, on peut poster labomep_all')
var labomepAll = {
'titre': 'Ressources Sésamath',
'resume': 'Liste des arbres affichables dans le panneau « Ressources Sésamath » de Labomep',
'type': 'arbre',
'categories': [8],
'publie': true,
'restriction': 0,
'indexable': true,
'origine': 'sesamath',
'idOrigine': 'labomep_all',
'enfants': allEnfants
titre: 'Ressources Sésamath',
resume: 'Liste des arbres affichables dans le panneau « Ressources Sésamath » de Labomep',
type: 'arbre',
categories: [8],
publie: true,
restriction: 0,
indexable: true,
origine: 'sesamath',
idOrigine: 'labomep_all',
enfants: allEnfants
}
// on écrit le fichier
fs.writeFileSync(path.join(jsonDir, 'sesamath-labomep_all.json'), JSON.stringify(labomepAll, null, 2))
......
......@@ -9,9 +9,8 @@ var _ = require('lodash')
var request = require('request')
var moment = require('moment')
var flow = require('an-flow')
var sjtObj = require('sesajstools/utils/object')
var sjt = require('sesajstools')
const {hasProp, stringify} = require('sesajstools')
const {merge, update} = require('sesajstools/utils/object')
var CounterMulti = require('../../app/server/lib/CounterMulti')
// conf de l'appli
......@@ -110,7 +109,7 @@ common.addPersonne = function (personne, next) {
var errorString = 'erreur sur le post ' + options.url + ' : '
if (error) errorString += error.toString()
else if (body.error) errorString += body.error
else errorString += sjt.stringify(body)
else errorString += stringify(body)
next(new Error(errorString))
} else if (body.oid) {
personne.oid = body.oid
......@@ -146,7 +145,7 @@ function addRessource (ressource, next) {
var errorString = 'erreur sur le post ' + options.url + ' : '
if (error) errorString += error.toString()
else if (body.error) errorString += body.error
else errorString += sjt.stringify(body)
else errorString += stringify(body)
addError(idComb, errorString)
if (opt.logApiCalls) log(idComb + ' KO : ' + errorString)
} else {
......@@ -263,13 +262,13 @@ common.displayResult = function (next) {
log('sur ' + idsToRec.length + ' à enregistrer (reste ' + idsToRec.total() + ' appels à faire)')
if (errors.length) {
var logfile = path.resolve(__dirname, '../../logs/import.error.log')
var writeStream = fs.createWriteStream(logfile, {'flags': 'a'})
var writeStream = fs.createWriteStream(logfile, {flags: 'a'})
log('erreurs vers ' + logfile)
log(errors.length + ' ressources avec erreurs :')
writeStream.write("Erreurs d'importation de " + __filename + ' à ' + moment().format('YYYY-MM-DD HH:mm:ss')) // eslint-disable-line no-path-concat
var id, msg
for (id in errors) {
if (errors.hasOwnProperty(id) && id !== 'length') {
if (hasProp(errors, id) && id !== 'length') {
msg = id + ' : ' + errors[id]
log(msg)
writeStream.write(msg)
......@@ -366,7 +365,7 @@ common.flushPendingRelations = function (next) {
}).seq(function () {
if (opt.logRelations) log('on va merger dans ' + ressource.oid, newRelations)
var mergedRelations = ressource.relations || []
sjtObj.merge(mergedRelations, newRelations)
merge(mergedRelations, newRelations)
common.mergeRessource({oid: ressource.oid, relations: mergedRelations}, this)
}).seq(function () {
// fin de subFlow
......@@ -510,7 +509,7 @@ common.getRessource = function (origine, idOrigine, next) {
} else if (ressource.oid) {
next(ressource)
} else {
next(new Error('La ressource récupérée avec ' + idComb + " n'a pas d'oid " + sjt.stringify(ressource)))
next(new Error('La ressource récupérée avec ' + idComb + " n'a pas d'oid " + stringify(ressource)))
}
})
}
......@@ -599,7 +598,7 @@ common.setPreviousAfterAllCb = function () {
* @param options
*/
common.setOptions = function (options