1
0
Fork 0
mirror of https://github.com/Alamantus/Lexiconga.git synced 2025-06-05 16:56:36 +02:00

Add set and get userDetails to api

This commit is contained in:
Robbie Antenesse 2018-03-09 16:27:38 -07:00
parent 73ef56c97b
commit 728ba28d5b
2 changed files with 75 additions and 8 deletions

View file

@ -24,7 +24,10 @@ class User {
}
} else if (password_verify($password, $user['password'])) {
$this->db->execute('UPDATE users SET last_login=' . time() . ' WHERE id=' . $user['id']);
return $this->generateUserToken($user['id'], $user['current_dictionary']);
return array(
'token' => $this->generateUserToken($user['id'], $user['current_dictionary']),
'user' => $this->getUserData($user['id']),
);
}
}
return false;
@ -60,13 +63,57 @@ VALUES (?, ?, ?, ?, ?, '. time() .')';
$new_dictionary = $this->dictionary->create($new_user_id);
if ($new_dictionary !== false) {
return $this->generateUserToken($new_user_id, $new_dictionary);
return array(
'token' => $this->generateUserToken($new_user_id, $new_dictionary),
'user' => $this->getUserData($new_user_id),
);
}
}
return false;
}
public function setUserData ($token, $user_data) {
$token_data = $this->token->decode($token);
if ($token_data !== false) {
$query = 'UPDATE users SET email=?, public_name=?, username=?, allow_email=?, use_ipa=? WHERE id=?';
$properties = array(
$user_data['email'],
$user_data['publicName'],
$user_data['username'],
$user_data['allowEmail'],
$user_data['useIPAPronunciation'],
$user_id,
);
$update_success = $this->db->execute($query, $properties);
if ($update_success) {
return array(
'token' => $token,
'userData' => $user_data,
);
}
}
return false;
}
public function getUserData ($user_id) {
$query = 'SELECT * FROM users WHERE id=?';
$stmt = $this->db->query($query, array($user_id));
$user = $stmt->fetch();
if ($stmt && $user) {
return array(
'email' => $user['email'],
'username' => $user['username'],
'publicName' => $user['public_name'],
'allowEmails' => $user['allow_email'] == 1 ? true : false,
'useIPAPronunciation' => $user['use_ipa'] == 1 ? true : false,
);
}
return false;
}
public function createNewDictionary ($token) {
$user_data = $this->token->decode($token);
if ($user_data !== false) {

View file

@ -12,10 +12,10 @@ switch ($action) {
case 'login': {
if (isset($request['email']) && isset($request['password'])) {
$user = new User();
$token = $user->logIn($request['email'], $request['password']);
if ($token !== false) {
$user_data = $user->logIn($request['email'], $request['password']);
if ($user_data !== false) {
return Response::json(array(
'data' => $token,
'data' => $user_data,
'error' => false,
), 200);
}
@ -33,10 +33,10 @@ switch ($action) {
if (isset($request['email']) && isset($request['password'])) {
$user = new User();
if (!$user->emailExists($request['email'])) {
$token = $user->create($request['email'], $request['password'], $request['userData']);
if ($token !== false) {
$user_data = $user->create($request['email'], $request['password'], $request['userData']);
if ($user_data !== false) {
return Response::json(array(
'data' => $token,
'data' => $user_data,
'error' => false,
), 201);
}
@ -103,6 +103,26 @@ switch ($action) {
'error' => true,
), 403);
}
case 'set-user-data': {
if ($token !== false && isset($request['userData'])) {
$user = new User();
$updated_user = $user->setUserData($token, $request['userData']);
if ($updated_user !== false) {
return Response::json(array(
'data' => $updated_user,
'error' => false,
), 200);
}
return Response::json(array(
'data' => 'Could not set user data: missing data',
'error' => true,
), 400);
}
return Response::json(array(
'data' => 'Could not get dictionaries: no token provided',
'error' => true,
), 403);
}
case 'create-new-dictionary': {
if ($token !== false) {
$user = new User();