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:
@@ -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)
|
||||
}
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user