update cart
This commit is contained in:
@@ -219,8 +219,15 @@ func (fs *FileServer) PromotionsHandler(w http.ResponseWriter, r *http.Request)
|
||||
if r.Method == http.MethodGet {
|
||||
file, err := os.Open(fileName)
|
||||
if err != nil {
|
||||
writeJSON(w, http.StatusInternalServerError, map[string]string{"error": err.Error()})
|
||||
return
|
||||
if os.IsNotExist(err) {
|
||||
_ = os.MkdirAll(filepath.Dir(fileName), 0755)
|
||||
_ = os.WriteFile(fileName, []byte("{}"), 0644)
|
||||
file, err = os.Open(fileName)
|
||||
}
|
||||
if err != nil {
|
||||
writeJSON(w, http.StatusInternalServerError, map[string]string{"error": err.Error()})
|
||||
return
|
||||
}
|
||||
}
|
||||
defer file.Close()
|
||||
|
||||
@@ -228,6 +235,7 @@ func (fs *FileServer) PromotionsHandler(w http.ResponseWriter, r *http.Request)
|
||||
return
|
||||
}
|
||||
if r.Method == http.MethodPost {
|
||||
_ = os.MkdirAll(filepath.Dir(fileName), 0755)
|
||||
file, err := os.Create(fileName)
|
||||
if err != nil {
|
||||
writeJSON(w, http.StatusInternalServerError, map[string]string{"error": err.Error()})
|
||||
@@ -247,8 +255,15 @@ func (fs *FileServer) VoucherHandler(w http.ResponseWriter, r *http.Request) {
|
||||
if r.Method == http.MethodGet {
|
||||
file, err := os.Open(fileName)
|
||||
if err != nil {
|
||||
writeJSON(w, http.StatusInternalServerError, map[string]string{"error": err.Error()})
|
||||
return
|
||||
if os.IsNotExist(err) {
|
||||
_ = os.MkdirAll(filepath.Dir(fileName), 0755)
|
||||
_ = os.WriteFile(fileName, []byte("{}"), 0644)
|
||||
file, err = os.Open(fileName)
|
||||
}
|
||||
if err != nil {
|
||||
writeJSON(w, http.StatusInternalServerError, map[string]string{"error": err.Error()})
|
||||
return
|
||||
}
|
||||
}
|
||||
defer file.Close()
|
||||
|
||||
@@ -256,6 +271,7 @@ func (fs *FileServer) VoucherHandler(w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
if r.Method == http.MethodPost {
|
||||
_ = os.MkdirAll(filepath.Dir(fileName), 0755)
|
||||
file, err := os.Create(fileName)
|
||||
if err != nil {
|
||||
writeJSON(w, http.StatusInternalServerError, map[string]string{"error": err.Error()})
|
||||
|
||||
@@ -400,6 +400,14 @@ func (sf *StateFile) GetPromotion(id string) (*PromotionRule, bool) {
|
||||
func LoadStateFile(fileName string) (*StateFile, error) {
|
||||
f, err := os.Open(fileName)
|
||||
if err != nil {
|
||||
if os.IsNotExist(err) {
|
||||
return &StateFile{
|
||||
State: PromotionState{
|
||||
Promotions: []PromotionRule{},
|
||||
},
|
||||
Version: 1,
|
||||
}, nil
|
||||
}
|
||||
return nil, err
|
||||
}
|
||||
defer f.Close()
|
||||
|
||||
@@ -71,6 +71,14 @@ func (sf *StateFile) GetVoucher(code string) (*Voucher, bool) {
|
||||
func LoadStateFile(fileName string) (*StateFile, error) {
|
||||
f, err := os.Open(fileName)
|
||||
if err != nil {
|
||||
if os.IsNotExist(err) {
|
||||
return &StateFile{
|
||||
State: State{
|
||||
Vouchers: []Voucher{},
|
||||
},
|
||||
Version: 1,
|
||||
}, nil
|
||||
}
|
||||
return nil, err
|
||||
}
|
||||
defer f.Close()
|
||||
|
||||
Reference in New Issue
Block a user