summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--interchange/member.hxx2
-rw-r--r--member.cxx84
2 files changed, 69 insertions, 17 deletions
diff --git a/interchange/member.hxx b/interchange/member.hxx
index 4031f7e..57467de 100644
--- a/interchange/member.hxx
+++ b/interchange/member.hxx
@@ -102,6 +102,7 @@ namespace QInterchange {
signals:
void created(QString const& response);
void loggedIn(QString const& response);
+ void setAccount(QString const& response);
void gotAccount(QString const& response);
void userNameChanged();
void userNickChanged();
@@ -126,6 +127,7 @@ namespace QInterchange {
protected:
void emitCreation(QString const& response);
void emitLogin(QString const& response);
+ void emitSetAccount(QString const& response);
void emitAccount(QString const& response);
private:
diff --git a/member.cxx b/member.cxx
index aa0c66d..ecef5f9 100644
--- a/member.cxx
+++ b/member.cxx
@@ -6,6 +6,7 @@ namespace QInterchange {
static Member* member;
static char *unCopy, *pwCopy, *vCopy, *fpCopy;
+ static interchange_member* mPtr;
Member::Member(QObject* parent) :
QObject{parent},
@@ -82,6 +83,67 @@ namespace QInterchange {
}, nullptr);
}
+ void Member::setAccount(QString const& firstName,
+ QString const& lastName, QString const& address1,
+ QString const& address2, QString const& city,
+ QString const& state, QString const& zip,
+ QString const& email, QString const& phoneDay)
+ {
+ auto fnData = firstName.toLatin1().constData();
+ auto fnCopy = (char*)malloc(strlen(fnData) + 1);
+ strcpy(fnCopy, fnData);
+ auto lnData = lastName.toLatin1().constData();
+ auto lnCopy = (char*)malloc(strlen(lnData) + 1);
+ strcpy(lnCopy, lnData);
+ auto a1Data = address1.toLatin1().constData();
+ auto a1Copy = (char*)malloc(strlen(a1Data) + 1);
+ strcpy(a1Copy, a1Data);
+ auto a2Data = address2.toLatin1().constData();
+ auto a2Copy = (char*)malloc(strlen(a2Data) + 1);
+ strcpy(a2Copy, a2Data);
+ auto cData = city.toLatin1().constData();
+ auto cCopy = (char*)malloc(strlen(cData) + 1);
+ strcpy(cCopy, cData);
+ auto sData = state.toLatin1().constData();
+ auto sCopy = (char*)malloc(strlen(sData) + 1);
+ strcpy(sCopy, sData);
+ auto zData = zip.toLatin1().constData();
+ auto zCopy = (char*)malloc(strlen(zData) + 1);
+ strcpy(zCopy, zData);
+ auto emData = email.toLatin1().constData();
+ auto emCopy = (char*)malloc(strlen(emData) + 1);
+ strcpy(emCopy, emData);
+ auto pdData = phoneDay.toLatin1().constData();
+ auto pdCopy = (char*)malloc(strlen(pdData) + 1);
+ strcpy(pdCopy, pdData);
+ interchange_member m = {
+ .fname = fnCopy,
+ .lname = lnCopy,
+ .address1 = a1Copy,
+ .address2 = a2Copy,
+ .city = cCopy,
+ .state = sCopy,
+ .zip = zCopy,
+ .phone_day = pdCopy,
+ .email = emCopy
+ };
+ mPtr = &m;
+ interchange_member_setaccount(mPtr,
+ [](interchange_response* response) {
+ free(mPtr->fname);
+ free(mPtr->lname);
+ free(mPtr->address1);
+ free(mPtr->address2);
+ free(mPtr->city);
+ free(mPtr->state);
+ free(mPtr->zip);
+ free(mPtr->phone_day);
+ free(mPtr->email);
+ member->emitSetAccount(QString{response->data});
+ interchange_free_response(response);
+ });
+ }
+
void Member::setUserName(QString const& userName)
{
if (m_userName != userName) {
@@ -342,23 +404,6 @@ namespace QInterchange {
});
}
- void Member::setAccount(QString const& firstName,
- QString const& lastName, QString const& address1,
- QString const& address2, QString const& city,
- QString const& state, QString const& zip,
- QString const& email, QString const& phoneDay)
- {
- interchange_member_setaccount(firstName.toLatin1().constData(),
- lastName.toLatin1().constData(),
- address1.toLatin1().constData(),
- address2.toLatin1().constData(),
- city.toLatin1().constData(),
- state.toLatin1().constData(),
- zip.toLatin1().constData(),
- email.toLatin1().constData(),
- phoneDay.toLatin1().constData());
- }
-
void Member::changePassword(QString const& passwordOld, QString const& password,
QString const& verify)
{
@@ -383,6 +428,11 @@ namespace QInterchange {
emit loggedIn(response);
}
+ void Member::emitSetAccount(QString const& response)
+ {
+ emit setAccount(response);
+ }
+
void Member::emitAccount(QString const& response)
{
emit gotAccount(response);