forked from lda/telodendria
Finish user interactive logic (still need to abstract it out)
This commit is contained in:
parent
f475cac601
commit
1273d87df9
1 changed files with 24 additions and 3 deletions
|
@ -57,6 +57,9 @@ ROUTE_IMPL(RouteRegister, args)
|
||||||
|
|
||||||
char *pathPart = NULL;
|
char *pathPart = NULL;
|
||||||
|
|
||||||
|
DbRef *ref;
|
||||||
|
HashMap *persist;
|
||||||
|
|
||||||
if (MATRIX_PATH_PARTS(args->path) == 0)
|
if (MATRIX_PATH_PARTS(args->path) == 0)
|
||||||
{
|
{
|
||||||
JsonValue *auth = NULL;
|
JsonValue *auth = NULL;
|
||||||
|
@ -91,9 +94,10 @@ ROUTE_IMPL(RouteRegister, args)
|
||||||
if (!auth)
|
if (!auth)
|
||||||
{
|
{
|
||||||
char *session = UtilRandomString(24);
|
char *session = UtilRandomString(24);
|
||||||
DbRef *ref = DbCreate(args->matrixArgs->db, 2,
|
|
||||||
|
ref = DbCreate(args->matrixArgs->db, 2,
|
||||||
"user_interactive", session);
|
"user_interactive", session);
|
||||||
HashMap *persist = DbJson(ref);
|
persist = DbJson(ref);
|
||||||
|
|
||||||
HashMapSet(persist, "created",
|
HashMapSet(persist, "created",
|
||||||
JsonValueInteger(UtilServerTs()));
|
JsonValueInteger(UtilServerTs()));
|
||||||
|
@ -141,6 +145,23 @@ ROUTE_IMPL(RouteRegister, args)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Check to see if session exists */
|
/* Check to see if session exists */
|
||||||
|
ref = DbLock(args->matrixArgs->db, 2,
|
||||||
|
"user_interactive", sessionStr);
|
||||||
|
|
||||||
|
if (!ref)
|
||||||
|
{
|
||||||
|
HttpResponseStatus(args->context, HTTP_BAD_REQUEST);
|
||||||
|
response = MatrixErrorCreate(M_UNKNOWN);
|
||||||
|
goto finish;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* We only need to know that it exists. */
|
||||||
|
DbUnlock(args->matrixArgs->db, ref);
|
||||||
|
DbDelete(args->matrixArgs->db, 2,
|
||||||
|
"user_interactive", sessionStr);
|
||||||
|
|
||||||
|
/* TODO: Abstract all the above logic out to a function */
|
||||||
|
/* TODO: Register new user here */
|
||||||
|
|
||||||
finish:
|
finish:
|
||||||
JsonFree(request);
|
JsonFree(request);
|
||||||
|
@ -161,7 +182,7 @@ finish:
|
||||||
response = MatrixErrorCreate(M_MISSING_PARAM);
|
response = MatrixErrorCreate(M_MISSING_PARAM);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* TODO: Check if ?username=x is available */
|
/* TODO: Check if username is available */
|
||||||
}
|
}
|
||||||
else if (HttpRequestMethodGet(args->context) == HTTP_POST &&
|
else if (HttpRequestMethodGet(args->context) == HTTP_POST &&
|
||||||
(MATRIX_PATH_EQUALS(pathPart, "email") ||
|
(MATRIX_PATH_EQUALS(pathPart, "email") ||
|
||||||
|
|
Loading…
Reference in a new issue