This commit is contained in:
2025-03-16 08:41:45 +01:00
parent 4796e4fe82
commit 6a555a5fe3
28 changed files with 66 additions and 66 deletions

View File

@@ -4,7 +4,7 @@ module actionprocessor
import freeflowuniverse.herolib.circles.core.db
import freeflowuniverse.herolib.circles.mcc.db
import freeflowuniverse.herolib.circles.actions.db
import freeflowuniverse.herolib.circles.models
import freeflowuniverse.herolib.circles.base
import freeflowuniverse.herolib.core.texttools
__global (
@@ -24,7 +24,7 @@ pub mut:
mails &db.MailDB
calendar &db.CalendarDB
jobs &db.JobDB
session_state models.SessionState
session_state base.SessionState
}

View File

@@ -1,17 +1,17 @@
module actions
module db
import freeflowuniverse.herolib.circles.base { models }
import freeflowuniverse.herolib.circles.actions.models { Job, job_loads }
import freeflowuniverse.herolib.circles.base { DBHandler, SessionState, new_dbhandler }
import freeflowuniverse.herolib.circles.actions.models { Job, job_loads, JobStatus }
@[heap]
pub struct JobDB {
pub mut:
db models.DBHandler[Job]
db DBHandler[Job]
}
pub fn new_jobdb(session_state models.SessionState) !JobDB {
pub fn new_jobdb(session_state SessionState) !JobDB {
return JobDB{
db: models.new_dbhandler[Job]('job', session_state)
db: new_dbhandler[Job]('job', session_state)
}
}
@@ -97,12 +97,12 @@ pub fn (mut m JobDB) get_by_circle_and_context(circle string, context string) ![
}
// update_job_status updates the status of a job
pub fn (mut m JobDB) update_job_status(guid string, new_status models.Status) !Job {
pub fn (mut m JobDB) update_job_status(guid string, new_status JobStatus) !Job {
// Get the job by GUID
mut job := m.get_by_guid(guid)!
// Update the job status
job.status.status = new_status
job.status = new_status
// Save the updated job
return m.set(job)!

View File

@@ -1,4 +1,4 @@
module actions
module db
import os
import rand

View File

@@ -19,9 +19,9 @@ pub mut:
timeout u16 = 3600 // timeout in sec
log bool = true
ignore_error bool // means if error will just exit and not raise, there will be no error reporting
ignore_error_codes []int // of we want to ignore certain error codes
ignore_error_codes []u16 // of we want to ignore certain error codes
debug bool // if debug will get more context
retry int // default there is no debug
retry u8 // default there is no debug
status JobStatus
dependencies []JobDependency // will not execute until other jobs are done
}
@@ -101,17 +101,17 @@ pub fn (j Job) dumps() ![]u8 {
// Encode ignore_error_codes array
e.add_u16(u16(j.ignore_error_codes.len))
for code in j.ignore_error_codes {
e.add_i32(code)
e.add_u16(code)
}
e.add_bool(j.debug)
e.add_i32(j.retry)
e.add_u8(j.retry)
// Encode JobStatus
e.add_string(j.status.guid)
e.add_i64(j.status.created.unix)
e.add_i64(j.status.start.unix)
e.add_i64(j.status.end.unix)
e.add_u32(u32(j.status.created.unix()))
e.add_u32(u32(j.status.start.unix()))
e.add_u32(u32(j.status.end.unix()))
e.add_u8(u8(j.status.status))
// Encode dependencies array
@@ -172,20 +172,20 @@ pub fn job_loads(data []u8) !Job {
job.ignore_error = d.get_bool()!
// Decode ignore_error_codes array
error_codes_len := d.get_u16()!
job.ignore_error_codes = []int{len: int(error_codes_len)}
error_codes_len := d.get_u8()!
job.ignore_error_codes = []u16{len: int(error_codes_len)}
for i in 0 .. error_codes_len {
job.ignore_error_codes[i] = d.get_i32()!
job.ignore_error_codes[i] = d.get_u8()!
}
job.debug = d.get_bool()!
job.retry = d.get_i32()!
job.retry = d.get_u8()!
// Decode JobStatus
job.status.guid = d.get_string()!
job.status.created.unix = d.get_i64()!
job.status.start.unix = d.get_i64()!
job.status.end.unix = d.get_i64()!
job.status.created.unixt = u64(d.get_u32()!)
job.status.start.unixt = u64(d.get_u32()!)
job.status.end.unixt = u64(d.get_u32()!)
status_val := d.get_u8()!
job.status.status = match status_val {
0 { Status.created }

View File

@@ -1,4 +1,4 @@
module model
module models
import freeflowuniverse.herolib.data.ourtime
@@ -21,7 +21,7 @@ fn test_job_serialization() {
timeout: 7200
log: true
ignore_error: false
ignore_error_codes: [404, 500]
ignore_error_codes: [u16(404), u16(500)]
debug: true
retry: 3
}

View File

@@ -1,4 +1,4 @@
module models
module base
import freeflowuniverse.herolib.circles.core.models { agent_loads, Agent, circle_loads, Circle, name_loads, Name }
import freeflowuniverse.herolib.circles.mcc.models { Email, email_loads, CalendarEvent, calendar_event_loads }

View File

@@ -1,4 +1,4 @@
module models
module base
import freeflowuniverse.herolib.data.ourdb
import freeflowuniverse.herolib.data.radixtree

View File

@@ -1,7 +1,7 @@
module core
module dbmodule core
import freeflowuniverse.herolib.data.ourtime
import freeflowuniverse.herolib.circles.models { DBHandler, SessionState }
import freeflowuniverse.herolib.circles.base { DBHandler, SessionState }
import freeflowuniverse.herolib.circles.core.models { Agent, AgentService, AgentServiceAction, AgentState }

View File

@@ -1,9 +1,9 @@
module core
module db
import os
import rand
import freeflowuniverse.herolib.circles.actionprocessor
import freeflowuniverse.herolib.circles.core.model
import freeflowuniverse.herolib.circles.core {Agent, AgentService, AgentServiceAction, AgentState}
fn test_agent_db() {
// Create a temporary directory for testing
@@ -169,7 +169,7 @@ fn test_agent_db() {
agents_after_all_deleted := runner.agents.getall() or {
// This is expected to fail with 'No agents found' error
assert err.msg() == 'No agents found'
[]core.Agent{cap: 0}
[]Agent{cap: 0}
}
assert agents_after_all_deleted.len == 0, 'Expected 0 agents after all deletions, got ${agents_after_all_deleted.len}'

View File

@@ -1,7 +1,7 @@
module core
module db
import freeflowuniverse.herolib.circles.models { DBHandler, SessionState }
import freeflowuniverse.herolib.circles.core.models { Circle }
import freeflowuniverse.herolib.circles.base { DBHandler, SessionState }
import freeflowuniverse.herolib.circles.core.models { Circle, Member }
@[heap]
pub struct CircleDB {
@@ -78,7 +78,7 @@ pub fn (mut m CircleDB) get_all_circle_names() ![]string {
}
// add_member adds a member to a circle
pub fn (mut m CircleDB) add_member(circle_name string, member core.Member) !Circle {
pub fn (mut m CircleDB) add_member(circle_name string, member Member) !Circle {
// Get the circle by name
mut circle := m.get_by_name(circle_name)!
@@ -103,7 +103,7 @@ pub fn (mut m CircleDB) remove_member(circle_name string, member_name string) !C
// Find and remove the member
mut found := false
mut new_members := []core.Member{}
mut new_members := []Member{}
for member in circle.members {
if member.name == member_name {
@@ -125,7 +125,7 @@ pub fn (mut m CircleDB) remove_member(circle_name string, member_name string) !C
}
// update_member_role updates the role of a member in a circle
pub fn (mut m CircleDB) update_member_role(circle_name string, member_name string, new_role core.Role) !Circle {
pub fn (mut m CircleDB) update_member_role(circle_name string, member_name string, new_role Role) !Circle {
// Get the circle by name
mut circle := m.get_by_name(circle_name)!

View File

@@ -1,9 +1,9 @@
module core
module db
import os
import rand
import freeflowuniverse.herolib.circles.actionprocessor
import freeflowuniverse.herolib.circles.core.models
import freeflowuniverse.herolib.circles.core {Circle, Member}
fn test_circle_db() {
// Create a temporary directory for testing
@@ -184,7 +184,7 @@ fn test_circle_db() {
circles_after_all_deleted := runner.circles.getall() or {
// This is expected to fail with 'No circles found' error
assert err.msg().contains('No index keys defined for this type') || err.msg().contains('No circles found')
[]core.Circle{cap: 0}
[]Circle{cap: 0}
}
assert circles_after_all_deleted.len == 0, 'Expected 0 circles after all deletions, got ${circles_after_all_deleted.len}'

View File

@@ -1,6 +1,6 @@
module core
module dbmodule core
import freeflowuniverse.herolib.circles.models { DBHandler, SessionState }
import freeflowuniverse.herolib.circles.base { DBHandler, SessionState }
import freeflowuniverse.herolib.circles.core.models { Name, Record, RecordType }
@[heap]

View File

@@ -1,9 +1,9 @@
module core
module db
import os
import rand
import freeflowuniverse.herolib.circles.actionprocessor
import freeflowuniverse.herolib.circles.core.models
import freeflowuniverse.herolib.circles.core {Name, Record}
fn test_name_db() {
// Create a temporary directory for testing
@@ -201,7 +201,7 @@ fn test_name_db() {
names_after_all_deleted := runner.names.getall() or {
// This is expected to fail with 'No names found' error
assert err.msg().contains('No index keys defined for this type') || err.msg().contains('No names found')
[]core.Name{cap: 0}
[]Name{cap: 0}
}
assert names_after_all_deleted.len == 0, 'Expected 0 names after all deletions, got ${names_after_all_deleted.len}'

View File

@@ -1,4 +1,4 @@
module core
module models
import freeflowuniverse.herolib.data.ourtime
import freeflowuniverse.herolib.data.encoder

View File

@@ -1,4 +1,4 @@
module core
module models
import freeflowuniverse.herolib.data.ourtime

View File

@@ -1,4 +1,4 @@
module core
module models
import freeflowuniverse.herolib.data.encoder

View File

@@ -1,4 +1,4 @@
module core
module models
fn test_circle_dumps_loads() {
// Create a test circle with some sample data

View File

@@ -1,4 +1,4 @@
module core
module models
import freeflowuniverse.herolib.data.encoder

View File

@@ -1,4 +1,4 @@
module core
module models
import freeflowuniverse.herolib.data.ourdb
import freeflowuniverse.herolib.data.radixtree

View File

@@ -1,6 +1,6 @@
module mcc
module db
import freeflowuniverse.herolib.circles.models { DBHandler, SessionState }
import freeflowuniverse.herolib.circles.base { DBHandler, SessionState }
import freeflowuniverse.herolib.circles.mcc.models { CalendarEvent, calendar_event_loads }
@[heap]

View File

@@ -1,6 +1,6 @@
module mcc
module db
import freeflowuniverse.herolib.circles.models { SessionState, new_session }
import freeflowuniverse.herolib.circles.base { SessionState, new_session }
import freeflowuniverse.herolib.circles.mcc.models { CalendarEvent }
import freeflowuniverse.herolib.data.ourtime
import os

View File

@@ -1,6 +1,6 @@
module mcc
module db
import freeflowuniverse.herolib.circles.models { DBHandler, SessionState }
import freeflowuniverse.herolib.circles.base { DBHandler, SessionState }
import freeflowuniverse.herolib.circles.mcc.models { Email, email_loads }
@[heap]

View File

@@ -1,4 +1,4 @@
module mcc
module db
import os
import rand

View File

@@ -1,4 +1,4 @@
module mcc
module models
import freeflowuniverse.herolib.data.ourtime
import freeflowuniverse.herolib.data.encoder

View File

@@ -1,4 +1,4 @@
module mcc
module models
import freeflowuniverse.herolib.data.ourtime
import time

View File

@@ -1,4 +1,4 @@
module mcc
module models
// import freeflowuniverse.herolib.data.ourtime
import freeflowuniverse.herolib.data.encoder

View File

@@ -1,4 +1,4 @@
module mcc
module models
// A simplified test file to verify basic functionality

View File

@@ -1,4 +1,4 @@
module mcc
module models
import freeflowuniverse.herolib.data.ourtime