2020-09-14 22:55:03 +00:00
|
|
|
#ifndef LUNCH_REST_MEAL_H
|
|
|
|
#define LUNCH_REST_MEAL_H
|
|
|
|
|
|
|
|
#include <string>
|
|
|
|
#include <ostream>
|
|
|
|
|
|
|
|
namespace LunchRest {
|
|
|
|
class Meal {
|
|
|
|
public:
|
|
|
|
Meal() = default;
|
|
|
|
Meal(bool soup, const std::string &name, const std::string &desc, int price) :
|
2020-09-15 15:25:27 +00:00
|
|
|
_isSoup(soup), _name(name), _desc(desc), _price(price) {
|
|
|
|
replaceStr(_name, "\"", "\\\"");
|
|
|
|
replaceStr(_desc, "\"", "\\\"");
|
|
|
|
}
|
2020-09-14 22:55:03 +00:00
|
|
|
|
|
|
|
bool isSoup() const {
|
|
|
|
return _isSoup;
|
|
|
|
}
|
|
|
|
const std::string &getName() const {
|
|
|
|
return _name;
|
|
|
|
}
|
|
|
|
const std::string &getDesc() const {
|
|
|
|
return _desc;
|
|
|
|
}
|
|
|
|
int getPrice() const {
|
|
|
|
return _price;
|
|
|
|
}
|
|
|
|
void setName(const std::string &name) {
|
|
|
|
_name = name;
|
2021-05-03 11:57:13 +00:00
|
|
|
replaceStr(_name, "\"", "\\\"");
|
2020-09-14 22:55:03 +00:00
|
|
|
}
|
|
|
|
void setPrice(int price) {
|
|
|
|
_price = price;
|
|
|
|
}
|
|
|
|
void setSoup(bool soup = true) {
|
|
|
|
_isSoup = soup;
|
|
|
|
}
|
|
|
|
void setDesc(const std::string &desc) {
|
|
|
|
_desc = desc;
|
2021-05-03 11:57:13 +00:00
|
|
|
replaceStr(_desc, "\"", "\\\"");
|
2020-09-14 22:55:03 +00:00
|
|
|
}
|
2020-09-14 23:30:34 +00:00
|
|
|
std::string jsonify() const;
|
2020-09-14 22:55:03 +00:00
|
|
|
private:
|
2020-09-15 15:25:27 +00:00
|
|
|
void replaceStr(std::string &str, const std::string &to_replace, const std::string &replacement) {
|
|
|
|
auto pos = str.find(to_replace);
|
|
|
|
while(pos != std::string::npos) {
|
|
|
|
str.replace(pos, to_replace.length(), replacement);
|
|
|
|
pos += replacement.length();
|
|
|
|
pos = str.find(to_replace, pos);
|
|
|
|
}
|
|
|
|
}
|
2020-09-14 22:55:03 +00:00
|
|
|
bool _isSoup = false;
|
|
|
|
std::string _name;
|
|
|
|
std::string _desc;
|
|
|
|
int _price;
|
|
|
|
};
|
|
|
|
} // end of namespace LunchRest
|
|
|
|
|
|
|
|
std::ostream &operator<<(std::ostream &os, const LunchRest::Meal &meal);
|
|
|
|
|
|
|
|
#endif
|