refactor
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -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)!
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
module actions
|
||||
module db
|
||||
|
||||
import os
|
||||
import rand
|
||||
|
||||
@@ -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 }
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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 }
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
module models
|
||||
module base
|
||||
|
||||
import freeflowuniverse.herolib.data.ourdb
|
||||
import freeflowuniverse.herolib.data.radixtree
|
||||
|
||||
@@ -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 }
|
||||
|
||||
|
||||
|
||||
@@ -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}'
|
||||
|
||||
|
||||
@@ -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)!
|
||||
|
||||
|
||||
@@ -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}'
|
||||
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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}'
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
module core
|
||||
module models
|
||||
|
||||
import freeflowuniverse.herolib.data.ourtime
|
||||
import freeflowuniverse.herolib.data.encoder
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
module core
|
||||
module models
|
||||
|
||||
import freeflowuniverse.herolib.data.ourtime
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
module core
|
||||
module models
|
||||
|
||||
import freeflowuniverse.herolib.data.encoder
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
module core
|
||||
module models
|
||||
|
||||
fn test_circle_dumps_loads() {
|
||||
// Create a test circle with some sample data
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
module core
|
||||
module models
|
||||
|
||||
import freeflowuniverse.herolib.data.encoder
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
module core
|
||||
module models
|
||||
|
||||
import freeflowuniverse.herolib.data.ourdb
|
||||
import freeflowuniverse.herolib.data.radixtree
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
module mcc
|
||||
module db
|
||||
|
||||
import os
|
||||
import rand
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
module mcc
|
||||
module models
|
||||
|
||||
import freeflowuniverse.herolib.data.ourtime
|
||||
import freeflowuniverse.herolib.data.encoder
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
module mcc
|
||||
module models
|
||||
|
||||
import freeflowuniverse.herolib.data.ourtime
|
||||
import time
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
module mcc
|
||||
module models
|
||||
|
||||
// import freeflowuniverse.herolib.data.ourtime
|
||||
import freeflowuniverse.herolib.data.encoder
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
module mcc
|
||||
module models
|
||||
|
||||
// A simplified test file to verify basic functionality
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
module mcc
|
||||
module models
|
||||
|
||||
import freeflowuniverse.herolib.data.ourtime
|
||||
|
||||
|
||||
Reference in New Issue
Block a user