// Si un fournisseur ethereum est présent :
if (window.ethereum) {
App.web3Provider = window.ethereum;
try {
// Request account access
await window.ethereum.request({ method: "eth_requestAccounts" });;
} catch (error) {
// User denied account access...
console.error("User denied account access")
}
}
// Autre cas de figure :
else if (window.web3) {
App.web3Provider = window.web3.currentProvider;
}
// Sinon, accès direct par le port TCP de Ganache
else {
App.web3Provider = new Web3.providers.HttpProvider('http://localhost:7545');
}

$.getJSON('Location.json', function(data) {
// Get the necessary contract artifact file and instantiate it with @truffle/contract
var locationArtifact = data;
	App.contracts.Location = TruffleContract(locationArtifact);

var locationInstance;
App.contracts.Location.deployed()
.then(function(instance) {
locationInstance = instance;
// Appel à la fonction getAppartements. Le résultat est envoyé sur la fonction suivante
return adoptionInstance.getAppartements.call();
})

.then(function(appartements) {
/ Pour chaque appartement, on indique s'il est loué ou non:
for (i = 0; i < appartements.length; i++) {
if (appartements[i] !== '0x0000000000000000000000000000000000000000') {
$('.panel-appart').eq(i).find('button').text('Indisponible')
	.attr('disabled', true)
	.addClass("btn-warning");
}
}
})
.catch(function(err) {
console.log(err.message);
});

handleLocation function(event) {

event.preventDefault();
var apartId = parseInt($(event.target).data('id'));

var locationInstance;
// web3.eth.getAccounts sert à récupérer les comptes de l’utilisateur

web3.eth.getAccounts(function(error, accounts) {
if (error) {
console.log(error);
}
// On prend le premier compte:
var account = accounts[0];
App.contracts.Location.deployed()
.then(function(instance) {
locationInstance = instance;
// Appel à la fonction loue, en transmettant le compte associé:
return adoptionInstance.loue(apartId, {from: account});
})
.then(function(result) {
return App.markLoue();
})
.catch(function(err) {
console.log(err.message);
});
});
}
};