Rank 1: Thread
how to receive the string in the client.
the cloud function returns as
"return context.res.send("Hello, World!");"
Votes
0
Replies
23
Participants
Unknown
Messages
24
Rank 1: Thread
how to receive the string in the client.
the cloud function returns as
"return context.res.send("Hello, World!");"
Rank 1: Thread
unable to retrieve the error code from the cloud function captured during the execution inside the cloud server.
You need to return the error to the client?
Have you tried: return context.res.send(error.message)?
Rank 1: Thread
yes
Rank 1: Thread
final execution = await functions.createExecution(functionId: '65211abe4aade6923e7c', body: jsontestnew);
Rank 1: Thread
this funtion creates new user
Rank 1: Thread
function is working fine
Rank 1: Thread
i want to receive the error.message in the client
Rank 1: Thread
this is the exception object string when error occurs.
Rank 1: Thread
{$id: 65219a57e8f7da6b8c4f,
$createdAt: 2023-10-07T17:50:19.578+00:00,
$updatedAt: 2023-10-07T17:50:19.578+00:00,
$permissions: [read("user:64d6987a54e50a844777")],
functionId: 65211abe4aade6923e7c,
trigger: http,
status: failed,
requestMethod: POST,
requestPath: /,
requestHeaders: [],
responseStatusCode: 500,
responseBody: ,
responseHeaders: [{name: x-powered-by,
value: Dart with package:shelf},
{name: date, value: Sat, 07 Oct 2023 17:50:19 GMT},
{name: content-length, value: 0},
{name: x-frame-options, value: SAMEORIGIN},
{name: content-type, value: text/plain; charset=utf-8},
{name: x-xss-protection, value: 1; mode=block},
{name: x-content-type-options,
value: nosniff}],
logs: , errors: , duration: 2.8738858699798584}
Rank 1: Thread
i want this message "AppwriteException: user_already_exists, A user with the same id, email, or phone already exists in this project. (409)". to be received from client
can you post your function method, you just need to propogate the message properly to client.
a general idea like this can be used -
export default async function (context) { let message; try { await createUser(); // no exception, it worked message = "success" } catch(error) { message = error.message; }
return context.res.send(message);}Client side: let message = executionStatus?.responseBody.
Rank 1: Thread
responseBody is empty
Rank 1: Thread
when user creation failed responseBody is empty
Rank 1: Thread
on sucess responseBody is user object
Rank 1: Thread
Future result = users.create(
userId: data.userid!, //'[USER_ID]',
email: data.email!, //'email@example.com',
password: data.passw!, //'password',
phone: data.phone, //'phone',
name: data.name, //'phone',
);
User mm = await result;
return context.res.send(mm.toMap().toString());
} catch (e) {
//print(e.toString());
context.error("Failed to create user " + e.toString());
return context.res.send('error:' + e.toString());
}
Rank 1: Thread
this is the error log
Rank 1: Thread
Failed to create user AppwriteException: user_already_exists, A user with the same id, email, or phone already exists in this project. (409)
Execution timed out.
Rank 1: Thread
i returned the context.res.send from the catch block. that's the problem. Now i changed to return from --outside the try/catch block. function works correctly.
Rank 1: Thread
received the message through executionStatus?.responseBody.
Rank 1: Thread
😀 thank you
Rank 1: Thread
[solved] receive context.res.send from client