forked from loafle/openapi-generator-original
Update isSet when the object is received from callback. (#4385)
This commit is contained in:
@@ -20,6 +20,27 @@
|
||||
namespace {{this}} {
|
||||
{{/cppNamespaceDeclarations}}
|
||||
|
||||
template <typename T> QString
|
||||
toStringValue(const QList<T> &val);
|
||||
|
||||
template <typename T>
|
||||
bool fromStringValue(const QList<QString> &inStr, QList<T> &val);
|
||||
|
||||
template <typename T>
|
||||
bool fromStringValue(const QMap<QString, QString> &inStr, QMap<QString, T> &val);
|
||||
|
||||
template <typename T>
|
||||
QJsonValue toJsonValue(const QList<T> &val);
|
||||
|
||||
template <typename T>
|
||||
QJsonValue toJsonValue(const QMap<QString, T> &val);
|
||||
|
||||
template <typename T>
|
||||
bool fromJsonValue(QList<T> &val, const QJsonValue &jval);
|
||||
|
||||
template <typename T>
|
||||
bool fromJsonValue(QMap<QString, T> &val, const QJsonValue &jval);
|
||||
|
||||
QString toStringValue(const QString &value);
|
||||
QString toStringValue(const QDateTime &value);
|
||||
QString toStringValue(const QByteArray &value);
|
||||
@@ -128,7 +149,7 @@ namespace {{this}} {
|
||||
bool fromJsonValue(QList<T> &val, const QJsonValue &jval) {
|
||||
bool ok = true;
|
||||
if(jval.isArray()){
|
||||
for(const auto& jitem : jval.toArray()){
|
||||
for(const auto jitem : jval.toArray()){
|
||||
T item;
|
||||
ok &= fromJsonValue(item, jitem);
|
||||
val.push_back(item);
|
||||
|
||||
@@ -14,12 +14,12 @@ namespace {{this}} {
|
||||
{{/cppNamespaceDeclarations}}
|
||||
|
||||
{{classname}}::{{classname}}(QString json) {
|
||||
this->init();
|
||||
this->initializeModel();
|
||||
this->fromJson(json);
|
||||
}
|
||||
|
||||
{{classname}}::{{classname}}() {
|
||||
this->init();
|
||||
this->initializeModel();
|
||||
}
|
||||
|
||||
{{classname}}::~{{classname}}() {
|
||||
@@ -27,15 +27,14 @@ namespace {{this}} {
|
||||
}
|
||||
|
||||
void
|
||||
{{classname}}::init() {
|
||||
{{classname}}::initializeModel() {
|
||||
{{^isEnum}}{{#vars}}
|
||||
m_{{name}}_isSet = false;
|
||||
m_{{name}}_isValid = false;
|
||||
{{/vars}}{{/isEnum}}{{#isEnum}}
|
||||
m_value_isSet = false;
|
||||
m_value_isValid = false;
|
||||
m_value = e{{classname}}::INVALID_VALUE_OPENAPI_GENERATED;
|
||||
{{/isEnum}}
|
||||
m_value = e{{classname}}::INVALID_VALUE_OPENAPI_GENERATED;{{/isEnum}}
|
||||
}
|
||||
|
||||
void
|
||||
@@ -46,22 +45,27 @@ void
|
||||
this->fromJsonObject(jsonObject);{{/isEnum}}{{#isEnum}}{{#allowableValues}}{{#enumVars}}
|
||||
{{#-first}}if{{/-first}}{{^-first}}else if{{/-first}} ( jsonString.compare({{#isString}}"{{value}}"{{/isString}}{{^isString}}QString::number({{value}}){{/isString}}, Qt::CaseInsensitive) == 0) {
|
||||
m_value = e{{classname}}::{{name}};
|
||||
m_value_isValid = true;
|
||||
m_value_isSet = m_value_isValid = true;
|
||||
}{{/enumVars}}{{/allowableValues}}{{/isEnum}}
|
||||
}
|
||||
|
||||
void
|
||||
{{classname}}::fromJson{{^isEnum}}Object{{/isEnum}}{{#isEnum}}Value{{/isEnum}}(QJson{{^isEnum}}Object{{/isEnum}}{{#isEnum}}Value{{/isEnum}} json) {
|
||||
{{^isEnum}}{{#vars}}
|
||||
{{^isContainer}}m_{{name}}_isValid = ::{{cppNamespace}}::fromJsonValue({{name}}, json[QString("{{baseName}}")]);{{/isContainer}}
|
||||
{{#isContainer}}{{^items.isContainer}}m_{{name}}_isValid = ::{{cppNamespace}}::fromJsonValue({{name}}, json[QString("{{baseName}}")]);{{/items.isContainer}}{{#items.isContainer}}{{#isListContainer}}
|
||||
{{^isEnum}}{{#vars}}{{^isContainer}}
|
||||
m_{{name}}_isValid = ::{{cppNamespace}}::fromJsonValue({{name}}, json[QString("{{baseName}}")]);
|
||||
m_{{name}}_isSet = !json[QString("{{baseName}}")].isNull() && m_{{name}}_isValid;{{/isContainer}}{{#isContainer}}{{^items.isContainer}}
|
||||
m_{{name}}_isValid = ::{{cppNamespace}}::fromJsonValue({{name}}, json[QString("{{baseName}}")]);
|
||||
m_{{name}}_isSet = !json[QString("{{baseName}}")].isNull() && m_{{name}}_isValid;{{/items.isContainer}}{{#items.isContainer}}{{#isListContainer}}
|
||||
if(json["{{baseName}}"].isArray()){
|
||||
auto arr = json["{{baseName}}"].toArray();
|
||||
m_{{name}}_isValid = true;
|
||||
for (const QJsonValue & jval : arr) {
|
||||
{{^items.isContainer}}{{items.baseType}}{{/items.isContainer}}{{#items.isListContainer}}QList<{{items.items.baseType}}>{{/items.isListContainer}}{{#items.isMapContainer}}QMap<QString, {{items.items.baseType}}>{{/items.isMapContainer}} item;
|
||||
m_{{name}}_isValid &= ::{{cppNamespace}}::fromJsonValue(item, jval)
|
||||
{{name}}.push_back(item);
|
||||
if(arr.count() > 0) {
|
||||
for (const QJsonValue jval : arr) {
|
||||
{{^items.isContainer}}{{items.baseType}}{{/items.isContainer}}{{#items.isListContainer}}QList<{{items.items.baseType}}>{{/items.isListContainer}}{{#items.isMapContainer}}QMap<QString, {{items.items.baseType}}>{{/items.isMapContainer}} item;
|
||||
m_{{name}}_isValid &= ::{{cppNamespace}}::fromJsonValue(item, jval);
|
||||
m_{{name}}_isSet = !jval.isNull() && m_{{name}}_isValid;
|
||||
{{name}}.push_back(item);
|
||||
}
|
||||
}
|
||||
}{{/isListContainer}}{{#isMapContainer}}
|
||||
if(json["{{baseName}}"].isObject()){
|
||||
@@ -72,6 +76,7 @@ void
|
||||
{{^items.isContainer}}{{items.baseType}}{{/items.isContainer}}{{#items.isListContainer}}QList<{{items.items.baseType}}>{{/items.isListContainer}}{{#items.isMapContainer}}QMap<QString, {{items.items.baseType}}>{{/items.isMapContainer}} item;
|
||||
auto jval = QJsonValue::fromVariant(varmap.value(val));
|
||||
m_{{name}}_isValid &= ::{{cppNamespace}}::fromJsonValue(item, jval);
|
||||
m_{{name}}_isSet &= !jval.isNull() && m_{{name}}_isValid;
|
||||
{{name}}.insert({{name}}.end(), val, item);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -59,7 +59,7 @@ public:
|
||||
virtual bool isValid() const override;
|
||||
|
||||
private:
|
||||
void init();
|
||||
void initializeModel();
|
||||
{{^isEnum}}{{#vars}}
|
||||
{{{dataType}}} {{name}};
|
||||
bool m_{{name}}_isSet;
|
||||
|
||||
@@ -1 +1 @@
|
||||
4.2.0-SNAPSHOT
|
||||
4.2.1-SNAPSHOT
|
||||
@@ -23,12 +23,12 @@
|
||||
namespace OpenAPI {
|
||||
|
||||
OAIApiResponse::OAIApiResponse(QString json) {
|
||||
this->init();
|
||||
this->initializeModel();
|
||||
this->fromJson(json);
|
||||
}
|
||||
|
||||
OAIApiResponse::OAIApiResponse() {
|
||||
this->init();
|
||||
this->initializeModel();
|
||||
}
|
||||
|
||||
OAIApiResponse::~OAIApiResponse() {
|
||||
@@ -36,7 +36,7 @@ OAIApiResponse::~OAIApiResponse() {
|
||||
}
|
||||
|
||||
void
|
||||
OAIApiResponse::init() {
|
||||
OAIApiResponse::initializeModel() {
|
||||
|
||||
m_code_isSet = false;
|
||||
m_code_isValid = false;
|
||||
@@ -46,7 +46,8 @@ OAIApiResponse::init() {
|
||||
|
||||
m_message_isSet = false;
|
||||
m_message_isValid = false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void
|
||||
OAIApiResponse::fromJson(QString jsonString) {
|
||||
@@ -60,13 +61,13 @@ void
|
||||
OAIApiResponse::fromJsonObject(QJsonObject json) {
|
||||
|
||||
m_code_isValid = ::OpenAPI::fromJsonValue(code, json[QString("code")]);
|
||||
|
||||
m_code_isSet = !json[QString("code")].isNull() && m_code_isValid;
|
||||
|
||||
m_type_isValid = ::OpenAPI::fromJsonValue(type, json[QString("type")]);
|
||||
|
||||
m_type_isSet = !json[QString("type")].isNull() && m_type_isValid;
|
||||
|
||||
m_message_isValid = ::OpenAPI::fromJsonValue(message, json[QString("message")]);
|
||||
|
||||
m_message_isSet = !json[QString("message")].isNull() && m_message_isValid;
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -59,7 +59,7 @@ public:
|
||||
virtual bool isValid() const override;
|
||||
|
||||
private:
|
||||
void init();
|
||||
void initializeModel();
|
||||
|
||||
qint32 code;
|
||||
bool m_code_isSet;
|
||||
|
||||
@@ -23,12 +23,12 @@
|
||||
namespace OpenAPI {
|
||||
|
||||
OAICategory::OAICategory(QString json) {
|
||||
this->init();
|
||||
this->initializeModel();
|
||||
this->fromJson(json);
|
||||
}
|
||||
|
||||
OAICategory::OAICategory() {
|
||||
this->init();
|
||||
this->initializeModel();
|
||||
}
|
||||
|
||||
OAICategory::~OAICategory() {
|
||||
@@ -36,14 +36,15 @@ OAICategory::~OAICategory() {
|
||||
}
|
||||
|
||||
void
|
||||
OAICategory::init() {
|
||||
OAICategory::initializeModel() {
|
||||
|
||||
m_id_isSet = false;
|
||||
m_id_isValid = false;
|
||||
|
||||
m_name_isSet = false;
|
||||
m_name_isValid = false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void
|
||||
OAICategory::fromJson(QString jsonString) {
|
||||
@@ -57,10 +58,10 @@ void
|
||||
OAICategory::fromJsonObject(QJsonObject json) {
|
||||
|
||||
m_id_isValid = ::OpenAPI::fromJsonValue(id, json[QString("id")]);
|
||||
|
||||
m_id_isSet = !json[QString("id")].isNull() && m_id_isValid;
|
||||
|
||||
m_name_isValid = ::OpenAPI::fromJsonValue(name, json[QString("name")]);
|
||||
|
||||
m_name_isSet = !json[QString("name")].isNull() && m_name_isValid;
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -55,7 +55,7 @@ public:
|
||||
virtual bool isValid() const override;
|
||||
|
||||
private:
|
||||
void init();
|
||||
void initializeModel();
|
||||
|
||||
qint64 id;
|
||||
bool m_id_isSet;
|
||||
|
||||
@@ -29,6 +29,27 @@
|
||||
|
||||
namespace OpenAPI {
|
||||
|
||||
template <typename T> QString
|
||||
toStringValue(const QList<T> &val);
|
||||
|
||||
template <typename T>
|
||||
bool fromStringValue(const QList<QString> &inStr, QList<T> &val);
|
||||
|
||||
template <typename T>
|
||||
bool fromStringValue(const QMap<QString, QString> &inStr, QMap<QString, T> &val);
|
||||
|
||||
template <typename T>
|
||||
QJsonValue toJsonValue(const QList<T> &val);
|
||||
|
||||
template <typename T>
|
||||
QJsonValue toJsonValue(const QMap<QString, T> &val);
|
||||
|
||||
template <typename T>
|
||||
bool fromJsonValue(QList<T> &val, const QJsonValue &jval);
|
||||
|
||||
template <typename T>
|
||||
bool fromJsonValue(QMap<QString, T> &val, const QJsonValue &jval);
|
||||
|
||||
QString toStringValue(const QString &value);
|
||||
QString toStringValue(const QDateTime &value);
|
||||
QString toStringValue(const QByteArray &value);
|
||||
@@ -137,7 +158,7 @@ namespace OpenAPI {
|
||||
bool fromJsonValue(QList<T> &val, const QJsonValue &jval) {
|
||||
bool ok = true;
|
||||
if(jval.isArray()){
|
||||
for(const auto& jitem : jval.toArray()){
|
||||
for(const auto jitem : jval.toArray()){
|
||||
T item;
|
||||
ok &= fromJsonValue(item, jitem);
|
||||
val.push_back(item);
|
||||
|
||||
@@ -23,12 +23,12 @@
|
||||
namespace OpenAPI {
|
||||
|
||||
OAIOrder::OAIOrder(QString json) {
|
||||
this->init();
|
||||
this->initializeModel();
|
||||
this->fromJson(json);
|
||||
}
|
||||
|
||||
OAIOrder::OAIOrder() {
|
||||
this->init();
|
||||
this->initializeModel();
|
||||
}
|
||||
|
||||
OAIOrder::~OAIOrder() {
|
||||
@@ -36,7 +36,7 @@ OAIOrder::~OAIOrder() {
|
||||
}
|
||||
|
||||
void
|
||||
OAIOrder::init() {
|
||||
OAIOrder::initializeModel() {
|
||||
|
||||
m_id_isSet = false;
|
||||
m_id_isValid = false;
|
||||
@@ -55,7 +55,8 @@ OAIOrder::init() {
|
||||
|
||||
m_complete_isSet = false;
|
||||
m_complete_isValid = false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void
|
||||
OAIOrder::fromJson(QString jsonString) {
|
||||
@@ -69,22 +70,22 @@ void
|
||||
OAIOrder::fromJsonObject(QJsonObject json) {
|
||||
|
||||
m_id_isValid = ::OpenAPI::fromJsonValue(id, json[QString("id")]);
|
||||
|
||||
m_id_isSet = !json[QString("id")].isNull() && m_id_isValid;
|
||||
|
||||
m_pet_id_isValid = ::OpenAPI::fromJsonValue(pet_id, json[QString("petId")]);
|
||||
|
||||
m_pet_id_isSet = !json[QString("petId")].isNull() && m_pet_id_isValid;
|
||||
|
||||
m_quantity_isValid = ::OpenAPI::fromJsonValue(quantity, json[QString("quantity")]);
|
||||
|
||||
m_quantity_isSet = !json[QString("quantity")].isNull() && m_quantity_isValid;
|
||||
|
||||
m_ship_date_isValid = ::OpenAPI::fromJsonValue(ship_date, json[QString("shipDate")]);
|
||||
|
||||
m_ship_date_isSet = !json[QString("shipDate")].isNull() && m_ship_date_isValid;
|
||||
|
||||
m_status_isValid = ::OpenAPI::fromJsonValue(status, json[QString("status")]);
|
||||
|
||||
m_status_isSet = !json[QString("status")].isNull() && m_status_isValid;
|
||||
|
||||
m_complete_isValid = ::OpenAPI::fromJsonValue(complete, json[QString("complete")]);
|
||||
|
||||
m_complete_isSet = !json[QString("complete")].isNull() && m_complete_isValid;
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -72,7 +72,7 @@ public:
|
||||
virtual bool isValid() const override;
|
||||
|
||||
private:
|
||||
void init();
|
||||
void initializeModel();
|
||||
|
||||
qint64 id;
|
||||
bool m_id_isSet;
|
||||
|
||||
@@ -23,12 +23,12 @@
|
||||
namespace OpenAPI {
|
||||
|
||||
OAIPet::OAIPet(QString json) {
|
||||
this->init();
|
||||
this->initializeModel();
|
||||
this->fromJson(json);
|
||||
}
|
||||
|
||||
OAIPet::OAIPet() {
|
||||
this->init();
|
||||
this->initializeModel();
|
||||
}
|
||||
|
||||
OAIPet::~OAIPet() {
|
||||
@@ -36,7 +36,7 @@ OAIPet::~OAIPet() {
|
||||
}
|
||||
|
||||
void
|
||||
OAIPet::init() {
|
||||
OAIPet::initializeModel() {
|
||||
|
||||
m_id_isSet = false;
|
||||
m_id_isValid = false;
|
||||
@@ -55,7 +55,8 @@ OAIPet::init() {
|
||||
|
||||
m_status_isSet = false;
|
||||
m_status_isValid = false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void
|
||||
OAIPet::fromJson(QString jsonString) {
|
||||
@@ -69,22 +70,22 @@ void
|
||||
OAIPet::fromJsonObject(QJsonObject json) {
|
||||
|
||||
m_id_isValid = ::OpenAPI::fromJsonValue(id, json[QString("id")]);
|
||||
|
||||
m_id_isSet = !json[QString("id")].isNull() && m_id_isValid;
|
||||
|
||||
m_category_isValid = ::OpenAPI::fromJsonValue(category, json[QString("category")]);
|
||||
|
||||
m_category_isSet = !json[QString("category")].isNull() && m_category_isValid;
|
||||
|
||||
m_name_isValid = ::OpenAPI::fromJsonValue(name, json[QString("name")]);
|
||||
|
||||
|
||||
m_name_isSet = !json[QString("name")].isNull() && m_name_isValid;
|
||||
|
||||
m_photo_urls_isValid = ::OpenAPI::fromJsonValue(photo_urls, json[QString("photoUrls")]);
|
||||
|
||||
m_photo_urls_isSet = !json[QString("photoUrls")].isNull() && m_photo_urls_isValid;
|
||||
|
||||
m_tags_isValid = ::OpenAPI::fromJsonValue(tags, json[QString("tags")]);
|
||||
m_tags_isSet = !json[QString("tags")].isNull() && m_tags_isValid;
|
||||
|
||||
m_status_isValid = ::OpenAPI::fromJsonValue(status, json[QString("status")]);
|
||||
|
||||
m_status_isSet = !json[QString("status")].isNull() && m_status_isValid;
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -74,7 +74,7 @@ public:
|
||||
virtual bool isValid() const override;
|
||||
|
||||
private:
|
||||
void init();
|
||||
void initializeModel();
|
||||
|
||||
qint64 id;
|
||||
bool m_id_isSet;
|
||||
|
||||
@@ -23,12 +23,12 @@
|
||||
namespace OpenAPI {
|
||||
|
||||
OAITag::OAITag(QString json) {
|
||||
this->init();
|
||||
this->initializeModel();
|
||||
this->fromJson(json);
|
||||
}
|
||||
|
||||
OAITag::OAITag() {
|
||||
this->init();
|
||||
this->initializeModel();
|
||||
}
|
||||
|
||||
OAITag::~OAITag() {
|
||||
@@ -36,14 +36,15 @@ OAITag::~OAITag() {
|
||||
}
|
||||
|
||||
void
|
||||
OAITag::init() {
|
||||
OAITag::initializeModel() {
|
||||
|
||||
m_id_isSet = false;
|
||||
m_id_isValid = false;
|
||||
|
||||
m_name_isSet = false;
|
||||
m_name_isValid = false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void
|
||||
OAITag::fromJson(QString jsonString) {
|
||||
@@ -57,10 +58,10 @@ void
|
||||
OAITag::fromJsonObject(QJsonObject json) {
|
||||
|
||||
m_id_isValid = ::OpenAPI::fromJsonValue(id, json[QString("id")]);
|
||||
|
||||
m_id_isSet = !json[QString("id")].isNull() && m_id_isValid;
|
||||
|
||||
m_name_isValid = ::OpenAPI::fromJsonValue(name, json[QString("name")]);
|
||||
|
||||
m_name_isSet = !json[QString("name")].isNull() && m_name_isValid;
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -55,7 +55,7 @@ public:
|
||||
virtual bool isValid() const override;
|
||||
|
||||
private:
|
||||
void init();
|
||||
void initializeModel();
|
||||
|
||||
qint64 id;
|
||||
bool m_id_isSet;
|
||||
|
||||
@@ -23,12 +23,12 @@
|
||||
namespace OpenAPI {
|
||||
|
||||
OAIUser::OAIUser(QString json) {
|
||||
this->init();
|
||||
this->initializeModel();
|
||||
this->fromJson(json);
|
||||
}
|
||||
|
||||
OAIUser::OAIUser() {
|
||||
this->init();
|
||||
this->initializeModel();
|
||||
}
|
||||
|
||||
OAIUser::~OAIUser() {
|
||||
@@ -36,7 +36,7 @@ OAIUser::~OAIUser() {
|
||||
}
|
||||
|
||||
void
|
||||
OAIUser::init() {
|
||||
OAIUser::initializeModel() {
|
||||
|
||||
m_id_isSet = false;
|
||||
m_id_isValid = false;
|
||||
@@ -61,7 +61,8 @@ OAIUser::init() {
|
||||
|
||||
m_user_status_isSet = false;
|
||||
m_user_status_isValid = false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void
|
||||
OAIUser::fromJson(QString jsonString) {
|
||||
@@ -75,28 +76,28 @@ void
|
||||
OAIUser::fromJsonObject(QJsonObject json) {
|
||||
|
||||
m_id_isValid = ::OpenAPI::fromJsonValue(id, json[QString("id")]);
|
||||
|
||||
m_id_isSet = !json[QString("id")].isNull() && m_id_isValid;
|
||||
|
||||
m_username_isValid = ::OpenAPI::fromJsonValue(username, json[QString("username")]);
|
||||
|
||||
m_username_isSet = !json[QString("username")].isNull() && m_username_isValid;
|
||||
|
||||
m_first_name_isValid = ::OpenAPI::fromJsonValue(first_name, json[QString("firstName")]);
|
||||
|
||||
m_first_name_isSet = !json[QString("firstName")].isNull() && m_first_name_isValid;
|
||||
|
||||
m_last_name_isValid = ::OpenAPI::fromJsonValue(last_name, json[QString("lastName")]);
|
||||
|
||||
m_last_name_isSet = !json[QString("lastName")].isNull() && m_last_name_isValid;
|
||||
|
||||
m_email_isValid = ::OpenAPI::fromJsonValue(email, json[QString("email")]);
|
||||
|
||||
m_email_isSet = !json[QString("email")].isNull() && m_email_isValid;
|
||||
|
||||
m_password_isValid = ::OpenAPI::fromJsonValue(password, json[QString("password")]);
|
||||
|
||||
m_password_isSet = !json[QString("password")].isNull() && m_password_isValid;
|
||||
|
||||
m_phone_isValid = ::OpenAPI::fromJsonValue(phone, json[QString("phone")]);
|
||||
|
||||
m_phone_isSet = !json[QString("phone")].isNull() && m_phone_isValid;
|
||||
|
||||
m_user_status_isValid = ::OpenAPI::fromJsonValue(user_status, json[QString("userStatus")]);
|
||||
|
||||
m_user_status_isSet = !json[QString("userStatus")].isNull() && m_user_status_isValid;
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -79,7 +79,7 @@ public:
|
||||
virtual bool isValid() const override;
|
||||
|
||||
private:
|
||||
void init();
|
||||
void initializeModel();
|
||||
|
||||
qint64 id;
|
||||
bool m_id_isSet;
|
||||
|
||||
Reference in New Issue
Block a user