smartglocal_error.h 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. /*
  2. This file is part of Telegram Desktop,
  3. the official desktop application for the Telegram messaging service.
  4. For license and copyright information please follow this link:
  5. https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
  6. */
  7. #pragma once
  8. #include <QtCore/QString>
  9. class QJsonObject;
  10. namespace SmartGlocal {
  11. class Error {
  12. public:
  13. enum class Code {
  14. None = 0, // Non-SmartGlocal errors.
  15. JsonParse = -1,
  16. JsonFormat = -2,
  17. Network = -3,
  18. Unknown = 8,
  19. };
  20. Error(
  21. Code code,
  22. const QString &description,
  23. const QString &message,
  24. const QString &parameter = QString())
  25. : _code(code)
  26. , _description(description)
  27. , _message(message)
  28. , _parameter(parameter) {
  29. }
  30. [[nodiscard]] Code code() const;
  31. [[nodiscard]] QString description() const;
  32. [[nodiscard]] QString message() const;
  33. [[nodiscard]] QString parameter() const;
  34. [[nodiscard]] static Error None();
  35. [[nodiscard]] static Error DecodedObjectFromResponse(QJsonObject object);
  36. [[nodiscard]] bool empty() const;
  37. [[nodiscard]] explicit operator bool() const {
  38. return !empty();
  39. }
  40. private:
  41. Code _code = Code::None;
  42. QString _description;
  43. QString _message;
  44. QString _parameter;
  45. };
  46. } // namespace SmartGlocal