]> git.plutz.net Git - confetti/blob - actions/update_prescription.sh
unify ics parser
[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 [ "$_POST[issuer_select]" = "other" ] && _POST[issuer]="${_POST[issuer_other]}"
35
36 # serialize POST array into file
37 for key in ${(k)_POST}; do
38   printf %s:%s\\n "$key" "${_POST[$key]//$BR/\\n}"
39 done >"$tempfile"
40
41 case "${_POST[action]}" in
42   save)
43     mv "$tempfile" "$prescfile"
44     touch "$clientfile"
45     ;;
46   cancel)
47     rm "$tempfile"
48     ;;
49   delete)
50     rm "$tempfile" "$prescfile"
51     touch "$clientfile"
52     ;;
53 esac
54
55 redirect "?p=prescriptions&client=${client}#${prescription}"