php - Angular 10 Call a function from component to services file
So i call the function like this under construction brackets.
constructor()
{
userData.getUserBySignature(this.userDetails.api_signature);
}
user-data.ts
getUserBySignature(api_signature:any)
{
const url = this.appData.getApiUrl() + 'getUserBySignature';
const data = this.jsonToURLEncoded({
api_signature: api_signature
});
return this.http.post(url, data, { headers: this.options });
}
php function
function getUserBySignature()
{
$request = \Slim\Slim::getInstance()->request();
$api_signature = $request->post('api_signature');
$db = getDB();
$sql = "SELECT api_signature, uid,username,name,first_name,last_name,bio,artisticBehaviour,location,email,profile_pic,profile_bg,updates_count,friend_count,profile_views,group_count,emailNotifications FROM users WHERE api_signature=:api_signature";
$stmt = $db->prepare($sql);
$stmt->bindParam("api_signature", $api_signature, PDO::PARAM_STR);
$stmt->execute();
$userDetails = $stmt->fetch(PDO::FETCH_OBJ); //this one?
if (!empty($userDetails)) {
return $userDetails;
} else {
$data['error'] = 'Invalid API signature33' . $api_signature;
echo json_encode($data);
exit;
}
}
}
but it doesnt work. i am getting 'Invalid API signature33' . $api_signature; without the $api_signature.
Any idea how to do that?
Answer
Solution:
Need to inject the service to the constructor first and then subscribe to the observable to resolve data
constructor(private userData: userData)
{
userData.getUserBySignature(this.userDetails.api_signature).subscribe((data)=> {
console.log(data) // should return the data
});
}
Source