Backend Service
This commit is contained in:
@@ -19,7 +19,7 @@ long provider_login(CVars in, CVars &out);
|
||||
long PracticeLogin(CVars in, CVars &out);
|
||||
long PracticeSessionCheck(long practice_id, long practice_users_id, const char *sessionid, int create);
|
||||
long provider_createmember(CVars in, CVars &out);
|
||||
|
||||
long provider_acceptmember(CVars in, CVars &out);
|
||||
|
||||
long providers_call(CVars in, CVars &out) {
|
||||
long ret = PHP_API_BAD_PARAM;
|
||||
@@ -64,15 +64,6 @@ long providers_call(CVars in, CVars &out) {
|
||||
|
||||
|
||||
|
||||
long provider_createmember(CVars in, CVars &out){
|
||||
logfmt(logINFO, "ENTER CALL long providers_createmember(CVars in, CVars &out)");
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
long provider_login(CVars in, CVars &out) {
|
||||
|
||||
long ret = -1;
|
||||
@@ -89,15 +80,158 @@ try{
|
||||
} catch (bad_parameter) {
|
||||
logfmt(logINFO, "ERROR CALL long provider_login(CVars in, CVars &out)");
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
return ret;
|
||||
|
||||
}
|
||||
|
||||
//000
|
||||
|
||||
|
||||
|
||||
|
||||
long provider_createmember(CVars in, CVars &out){
|
||||
|
||||
long ret = PHP_API_BAD_PARAM;
|
||||
logfmt(logINFO, "Provider CreateMember()");
|
||||
|
||||
try {
|
||||
|
||||
REQ_LONG(in, "practice_id", 0, -1);
|
||||
REQ_LONG(in, "practice_user_id", 0, -1);
|
||||
REQ_STRING(in, "username", 5, 49, "(.*)");
|
||||
REQ_STRING(in, "firstname", 2, 49, "(.*)");
|
||||
REQ_STRING(in, "lastname", 2, 49, "(.*)");
|
||||
OPTIONAL(in, "phone") REQ_STRING(in, "phone", 5, 23, "(.*)");
|
||||
REQ_STRING(in, "password", 5, 49, "(.*)");
|
||||
OPTIONAL(in, "phone") REQ_STRING(in, "loc", 5, 16, "(.*)");
|
||||
OPTIONAL(in, "login") REQ_LONG(in, "login", 0, -1);
|
||||
|
||||
long member_id = 0;
|
||||
|
||||
//REQ_STRING (in, "sessionid", 4, 40, "(.*)");
|
||||
const char * loc = getenv("REMOTE_ADDR");
|
||||
out["member_id"]="0";
|
||||
|
||||
ret = load_db_record(out, "SELECT *,id AS member_id FROM members WHERE LOWER(username)=LOWER('%s') ", in["username"].c_str());
|
||||
logfmt(logINFO, "Provider CreateMember()member_id=%lu",out["member_id"].Long());
|
||||
if (out["member_id"].Long() == 0) {
|
||||
|
||||
// LETS CREATE THE ACOUNT NOW
|
||||
CVars x;
|
||||
const char * loc = getenv("REMOTE_ADDR");
|
||||
x["loc"] = loc;
|
||||
x["loc"].set_valid(true);
|
||||
x["username"] = in["username"];
|
||||
x["username"].set_valid(true);
|
||||
x["firstname"] = in["firstname"];
|
||||
x["firstname"].set_valid(true);
|
||||
x["lastname"] = in["lastname"];
|
||||
x["lastname"].set_valid(true);
|
||||
x["phone"] = in["phone"];
|
||||
x["phone"].set_valid(true);
|
||||
// x["loc"] = in["loc"];
|
||||
// x["loc"].set_valid(true);
|
||||
x["email"] = in["email"];
|
||||
x["email"].set_valid(true);
|
||||
// x["password"] = in["email"];
|
||||
// x["password"].set_valid(true);
|
||||
out["member_id"] = insert_db_record(DBS_VALID, "members", "members_id_seq", x);
|
||||
|
||||
if (out["member_id"].Long() > 0) {
|
||||
pgsql_query("UPDATE members SET password = md5('%s') WHERE id = %lu", in["password"].c_str(), out["member_id"].Long()); // setting the password MD5 now
|
||||
// Now Send Email
|
||||
ret = PHP_API_OK;
|
||||
//make your patient
|
||||
CVars z;
|
||||
z["practice_id"] = in["practice_id"];
|
||||
z["practice_id"].set_valid(true);
|
||||
z["practice_user_id"] = in["practice_user_id"];
|
||||
z["practice_user_id"].set_valid(true);
|
||||
z["member_id"] = out["member_id"];
|
||||
z["member_id"].set_valid(true);
|
||||
provider_acceptmember(z, out);
|
||||
|
||||
out["status"] = "OK";
|
||||
member_id = out["member_id"].Long();
|
||||
in["member_id"] = out["member_id"];
|
||||
in["member_id"].set_valid(true);
|
||||
medTrUpdateProfile(in, out);
|
||||
|
||||
// ==============
|
||||
}
|
||||
} // if username
|
||||
}catch (bad_parameter) {
|
||||
logfmt(logINFO, "ERROR CALL Provider CreateMember");
|
||||
}
|
||||
logfmt(logINFO, "/Provider CreateMember()");
|
||||
return ret;
|
||||
}
|
||||
void GenerateLongID(char * number, int sz, int seed);
|
||||
|
||||
long provider_acceptmember(CVars in, CVars &out){
|
||||
long ret = PHP_API_BAD_PARAM;
|
||||
logfmt(logINFO, "provider_acceptmember()");
|
||||
char vname[15];
|
||||
try{
|
||||
|
||||
REQ_LONG(in, "practice_id", 0, -1);
|
||||
REQ_LONG(in, "practice_user_id", 0, -1);
|
||||
REQ_LONG(in, "member_id", 0, -1);
|
||||
|
||||
GenerateLongID(vname, sizeof (vname), 10);
|
||||
//snprintf(vname, sizeof (vname), "ME%05d", i);
|
||||
out["long_id"] = vname;
|
||||
|
||||
|
||||
|
||||
CVars x;
|
||||
x["practice_id"] = in["practice_id"];
|
||||
x["practice_id"].set_valid(true);
|
||||
x["practice_user_id"] = in["practice_user_id"];
|
||||
x["practice_user_id"].set_valid(true);
|
||||
x["member_id"] = in["member_id"];
|
||||
x["member_id"].set_valid(true);
|
||||
|
||||
x["long_id"] = vname;
|
||||
x["long_id"].set_valid(true);
|
||||
out["patient_id_id"] = insert_db_record(DBS_VALID, "patients", "patients_id_seq", x);
|
||||
|
||||
|
||||
|
||||
}catch (bad_parameter) {
|
||||
logfmt(logINFO, "ERROR CALL Provider CreateMember");
|
||||
}
|
||||
logfmt(logINFO, "/provider_acceptmember()");
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
void GenerateLongID(char * number, int sz, int seed) {
|
||||
char chars[] = "WRB01234WRB56789WRB";
|
||||
int n = sizeof (chars);
|
||||
int i;
|
||||
/*
|
||||
time_t t;
|
||||
time( &t );
|
||||
pid_t pid = getpid();
|
||||
|
||||
srand(t+pid);
|
||||
*/
|
||||
srand((unsigned int) time((time_t *) NULL));
|
||||
|
||||
for (i = 0; i < 10 && i < sz - 1; i++) {
|
||||
int k = seed % n;
|
||||
if (seed > 1 && k == i) {
|
||||
number[i] = chars[n - k];
|
||||
} else {
|
||||
number[i] = chars[ (int) ((n - 1.0) * rand() / (RAND_MAX + 1.0)) ];
|
||||
}
|
||||
}
|
||||
number[i] = 0;
|
||||
}
|
||||
|
||||
|
||||
//XXX
|
||||
long PracticeLogin(CVars in, CVars &out) {
|
||||
long ret = PHP_API_BAD_PARAM;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user