a0d9371b2849400ae6a843ae0dd9ac5b089591b1
[confetti] / actions / update_prescription.sh
1 #!/bin/zsh
2
3 # Copyright 2016 Paul Hänsch
4 #
5 # This file is part of Confetti.
6
7 # Confetti is free software: you can redistribute it and/or modify
8 # it under the terms of the GNU Affero General Public License as published by
9 # the Free Software Foundation, either version 3 of the License, or
10 # (at your option) any later version.
11
12 # Confetti is distributed in the hope that it will be useful,
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 # GNU Affero General Public License for more details.
16
17 # You should have received a copy of the GNU Affero General Public License
18 # along with Confetti.  If not, see <http://www.gnu.org/licenses/>. 
19
20 BR='
21 '
22 prescription="${_POST[prescription]}"
23
24 tempfile="$_DATA/temp/$prescription"
25 prescfile="$_DATA/prescriptions/$prescription"
26 client="${prescription%.*.mpx}.vcf"
27 clientfile="$_DATA/vcard/$client"
28
29 if [ -z "$prescription" -o \! -f "$clientfile" ]; then
30   redirect "?p=error"
31   exit 0
32 fi
33
34 # serialize POST array into file
35 for key in ${(k)_POST}; do
36   printf %s:%s\\n "$key" "${_POST[$key]//$BR/\\n}"
37 done >"$tempfile"
38
39 case "${_POST[action]}" in
40   save)
41     mv "$tempfile" "$prescfile"
42     touch "$clientfile"
43     ;;
44   cancel)
45     rm "$tempfile"
46     ;;
47   delete)
48     rm "$tempfile" "$prescfile"
49     touch "$clientfile"
50     ;;
51 esac
52
53 redirect "?p=prescriptions&client=${client}#${prescription}"