# Prepnite aplikáciu do údržby pomocou PAUSESERVER()

> Pozastavte server podľa názvu, aby každá požiadavka dostala stránku 503, obnovte ho a majte na pamäti, že bez druhého argumentu volanie prepína stav.

Framework: total5
Product: Total.js 5 (total5@0.0.19)
Language: sk
Content-SHA256: 7f0ce83ebdc50d5c9b7e610403c94e536f38442e1055bd55251b597f0bf36c83
Snapshot: c0700e321579725c5cf4f5ace1ad7d2866d1b4f93c24a63c0b41b6b7998e976c
Sources: total5-installed@total5@0.0.19
Review: not-recorded

`PAUSESERVER(name, true)` pozastaví server a `PAUSESERVER(name, false)` ho obnoví. Kým je pozastavený **aspoň jeden názov**, každá požiadavka dostane odpoveď so stavom **503** a vstavanú stránku údržby (požiadavka vykonaná cez `xhr` dostane namiesto stránky chybovú odpoveď 503). Názov len identifikuje, kto server pozastavil, takže dve časti aplikácie môžu pozastavovať a obnovovať nezávisle: server odpovedá znova, keď sú obnovené všetky názvy.

Bez druhého argumentu volanie **prepína**: `PAUSESERVER(name)` pozastaví, keď názov nebol pozastavený, a obnoví, keď bol, a vráti nový stav (`true`, keď je pozastavený).

Keďže pozastavený server odpovedá na všetko stavom 503, aj na routu, ktorá by ho obnovila, obnovte ho z vlastného kódu: časovač, signál, úloha, ktorá skončí. Príklad pozastaví na krátky čas a obnoví sa sám.

```js controllers/maintenance.js
exports.install = function() {
	ROUTE('GET /maintenance/', maintenance);
	ROUTE('GET /toggle/', toggle);
	ROUTE('GET /ping/', ping);
};

function maintenance($) {
	const state = PAUSESERVER('maintenance', true);
	setTimeout(() => PAUSESERVER('maintenance', false), 600);
	$.json({ paused: state });
}

function toggle($) {
	const first = PAUSESERVER('toggled');
	const second = PAUSESERVER('toggled');
	$.json({ first: first, second: second });
}

function ping($) {
	$.json({ ok: true });
}
```
