numex-ilan/public/js/api.js

66 lines
2.2 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// Ortak API yardımcıları + format fonksiyonları
const API = {
kategoriler: () => fetch('/api/kategoriler').then((r) => r.json()),
ilanlar: (params = '') => fetch(`/api/ilanlar${params}`).then((r) => r.json()),
ilan: (id) => fetch(`/api/ilanlar/${id}`).then((r) => (r.ok ? r.json() : null)),
ilanEkle: (veri) =>
fetch('/api/ilanlar', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(veri),
}).then((r) => r.json()),
ilanGuncelle: (id, veri) =>
fetch(`/api/ilanlar/${id}`, {
method: 'PUT',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(veri),
}).then((r) => r.json()),
ilanSil: (id) => fetch(`/api/ilanlar/${id}`, { method: 'DELETE' }).then((r) => r.json()),
mesajlar: (ilanId) => fetch(`/api/mesajlar/${ilanId}`).then((r) => r.json()),
mesajGonder: (veri) =>
fetch('/api/mesajlar', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(veri),
}).then((r) => r.json()),
};
function paraSayi(deger) {
const n = Number(deger);
if (isNaN(n)) return deger;
return n.toLocaleString('tr-TR') + ' ₺';
}
function fiyatOzet(deger) {
const n = Number(deger);
if (n >= 1000000) return (n / 1000000).toLocaleString('tr-TR', { maximumFractionDigits: 2 }) + ' M TL';
return paraSayi(deger);
}
// Üst barı tüm sayfalara gömer
function ustbariCiz(aktif) {
const aktifArama = new URLSearchParams(location.search).get('q') || '';
document.body.insertAdjacentHTML(
'afterbegin',
`
<header class="topbar">
<div class="topbar-inner">
<a class="logo" href="index.html">🏠 <span>Numex</span> İlan</a>
<form class="top-search" action="katalog.html" method="get">
<input name="q" placeholder="Ara: daire, araba, iPhone..." value="${aktifArama}" />
<button type="submit">🔍</button>
</form>
<div class="top-actions">
<a class="btn btn-ilan" href="ilan-ac.html">+ İlan Ver</a>
<a class="btn btn-beyaz" href="katalog.html">Katalog</a>
</div>
</div>
</header>
`
);
if (aktif) {
const el = document.querySelector(`[data-aktif="${aktif}"]`);
if (el) el.style.fontWeight = '700';
}
}