/* openbills - Server for web based Libre Billing Software * Copyright (C) 2023 Vidhu Kant Sharma * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ package errors import ( "errors" "net/http" ) func StatusCodeFromErr(err error) int { // 204 if errors.Is(err, ErrEmptyResponse) { return http.StatusNoContent } // 400 if errors.Is(err, ErrNoWhereCondition) || errors.Is (err, ErrInvalidID) || errors.Is (err, ErrEmptyContactName) || errors.Is(err, ErrInvalidGSTIN) || errors.Is(err, ErrEmptyBrandName) || errors.Is(err, ErrInvalidUnitPrice) || errors.Is(err, ErrInvalidGSTPercentage) { return http.StatusBadRequest } // 404 if errors.Is(err, ErrNotFound) || errors.Is(err, ErrBrandNotFound) { return http.StatusNotFound } // 409 if errors.Is(err, ErrNonUniqueGSTIN) || errors.Is(err, ErrNonUniquePhone) || errors.Is(err, ErrNonUniqueEmail) || errors.Is(err, ErrNonUniqueWebsite) || errors.Is(err, ErrNonUniqueBrandName) || errors.Is(err, ErrNonUniqueBrandItem) { return http.StatusConflict } // 500 if errors.Is(err, ErrInternalServerError) { return http.StatusInternalServerError } return http.StatusInternalServerError }