function doGet(e) {
const fn = (e.parameter.fn || '').toLowerCase();
const rates = getRates_();
if (fn === 'categories') {
const cats = [...new Set(Object.values(rates).map(r => r.category).filter(Boolean))];
return json_({ ok:true, categories: cats.sort() });
}
if (fn === 'subcategories') {
const cat = e.parameter.category || '';
const subs = [...new Set(Object.values(rates)
.filter(r => r.category===cat)
.map(r => r.subcategory).filter(Boolean))];
return json_({ ok:true, subcategories: subs.sort() });
}
if (fn === 'services') {
const cat = e.parameter.category || '';
const sub = e.parameter.subcategory || '';
const list = Object.entries(rates)
.filter(([k,r]) => (!cat || r.category===cat) && (!sub || r.subcategory===sub))
.map(([k,r]) => ({ service_key:k, label:r.label }));
return json_({ ok:true, services: list.sort((a,b)=>a.label.localeCompare(b.label)) });
}
// existing fn === 'quote' branch stays as in our previous script
// ...
}
Schedule a free consultation today!
call us at
Tell us a bit about your project, and we’ll get back shortly.
or
Dayton Construction Group