refactor: Update RPC server main and entity ID handling

- Refactor `main` to spawn RPC server process
- Add `time` import for server startup delay
- Update `mydb.set` calls to use mutable object references
- Return entity ID from modified object after `set`
This commit is contained in:
Mahmoud-Emad
2025-09-15 18:02:45 +03:00
parent e2a894de29
commit eeac447644
9 changed files with 36 additions and 30 deletions

View File

@@ -4,22 +4,28 @@ import json
import freeflowuniverse.herolib.hero.heromodels.rpc
import freeflowuniverse.herolib.schemas.jsonrpc
import freeflowuniverse.herolib.hero.heromodels
import time
fn main() {
mut handler := rpc.new()!
spawn fn () ! {
println('starting server')
rpc.start(http_port: 9090) or { panic('Failed to start RPC server: ${err}') }
}()
my_calendar := heromodels.calendar_new(
name: 'My Calendar'
description: 'My Calendar'
securitypolicy: 1
tags: ['tag1', 'tag2']
group_id: 1
events: []u32{}
color: '#000000'
timezone: 'UTC'
is_public: true
)!
time.sleep(time.second * 3)
println('sleeping for 3 seconds to let server start')
// my_calendar := heromodels.calendar_new(
// name: 'My Calendar'
// description: 'My Calendar'
// securitypolicy: 1
// tags: ['tag1', 'tag2']
// group_id: 1
// events: []u32{}
// color: '#000000'
// timezone: 'UTC'
// is_public: true
// )!
response := handler.handle(jsonrpc.new_request('calendar_set', json.encode(my_calendar)))!
println(response)
// response := handler.handle(jsonrpc.new_request('calendar_set', json.encode(my_calendar)))!
// println(response)
}

View File

@@ -81,9 +81,9 @@ pub fn calendar_event_set(request Request) !Response {
comments: payload.comments
)!
id := mydb.calendar_event.set(calendar_event_obj)!
mydb.calendar_event.set(mut calendar_event_obj)!
return new_response_u32(request.id, id)
return new_response_u32(request.id, calendar_event_obj.id)
}
pub fn calendar_event_delete(request Request) !Response {

View File

@@ -59,9 +59,9 @@ pub fn chat_group_set(request Request) !Response {
comments: payload.comments
)!
id := mydb.chat_group.set(chat_group_obj)!
mydb.chat_group.set(mut chat_group_obj)!
return new_response_u32(request.id, id)
return new_response_u32(request.id, chat_group_obj.id)
}
pub fn chat_group_delete(request Request) !Response {

View File

@@ -71,9 +71,9 @@ pub fn chat_message_set(request Request) !Response {
comments: payload.comments
)!
id := mydb.chat_message.set(chat_message_obj)!
mydb.chat_message.set(mut chat_message_obj)!
return new_response_u32(request.id, id)
return new_response_u32(request.id, chat_message_obj.id)
}
pub fn chat_message_delete(request Request) !Response {

View File

@@ -48,9 +48,9 @@ pub fn comment_set(request Request) !Response {
author: payload.author
)!
id := mydb.comments.set(comment_obj)!
mydb.comments.set(mut comment_obj)!
return new_response_u32(request.id, id)
return new_response_u32(request.id, comment_obj.id)
}
pub fn comment_delete(request Request) !Response {

View File

@@ -54,9 +54,9 @@ pub fn group_set(request Request) !Response {
is_public: payload.is_public
)!
id := mydb.group.set(group_obj)!
mydb.group.set(mut group_obj)!
return new_response_u32(request.id, id)
return new_response_u32(request.id, group_obj.id)
}
pub fn group_delete(request Request) !Response {

View File

@@ -67,9 +67,9 @@ pub fn project_set(request Request) !Response {
comments: payload.comments
)!
id := mydb.project.set(project_obj)!
mydb.project.set(mut project_obj)!
return new_response_u32(request.id, id)
return new_response_u32(request.id, project_obj.id)
}
pub fn project_delete(request Request) !Response {

View File

@@ -81,9 +81,9 @@ pub fn project_issue_set(request Request) !Response {
comments: payload.comments
)!
id := mydb.project_issue.set(project_issue_obj)!
mydb.project_issue.set(mut project_issue_obj)!
return new_response_u32(request.id, id)
return new_response_u32(request.id, project_issue_obj.id)
}
pub fn project_issue_delete(request Request) !Response {

View File

@@ -68,9 +68,9 @@ pub fn user_set(request Request) !Response {
comments: payload.comments
)!
id := mydb.user.set(user_obj)!
mydb.user.set(mut user_obj)!
return new_response_u32(request.id, id)
return new_response_u32(request.id, user_obj.id)
}
pub fn user_delete(request Request) !Response {