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:
parent
73ef56c97b
commit
728ba28d5b
2 changed files with 75 additions and 8 deletions
|
@ -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) {
|
||||
|
|
|
@ -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();
|
||||
|
|
Loading…
Add table
Reference in a new issue