-
Notifications
You must be signed in to change notification settings - Fork 12
/
services.go
138 lines (130 loc) · 7.42 KB
/
services.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
package service
import (
"github.com/neo4j/neo4j-go-driver/v5/neo4j"
"github.com/openline-ai/openline-customer-os/packages/server/customer-os-api/config"
"github.com/openline-ai/openline-customer-os/packages/server/customer-os-api/repository"
commonAuthService "github.com/openline-ai/openline-customer-os/packages/server/customer-os-common-auth/service"
"github.com/openline-ai/openline-customer-os/packages/server/customer-os-common-module/grpc_client"
"github.com/openline-ai/openline-customer-os/packages/server/customer-os-common-module/logger"
commonService "github.com/openline-ai/openline-customer-os/packages/server/customer-os-common-module/service"
"gorm.io/gorm"
)
type Services struct {
Cfg *config.Config
Cache CacheService
Repositories *repository.Repositories
CommonServices *commonService.Services
CommonAuthServices *commonAuthService.Services
BankAccountService BankAccountService
ContactService ContactService
OrganizationService OrganizationService
CustomFieldService CustomFieldService
PhoneNumberService PhoneNumberService
EmailService EmailService
UserService UserService
FieldSetService FieldSetService
EntityTemplateService EntityTemplateService
FieldSetTemplateService FieldSetTemplateService
CustomFieldTemplateService CustomFieldTemplateService
TimelineEventService TimelineEventService
NoteService NoteService
JobRoleService JobRoleService
CalendarService CalendarService
LocationService LocationService
TagService TagService
SearchService SearchService
QueryService DashboardService
DomainService DomainService
IssueService IssueService
InteractionSessionService InteractionSessionService
InteractionEventService InteractionEventService
PageViewService PageViewService
AnalysisService AnalysisService
AttachmentService AttachmentService
MeetingService MeetingService
TenantService TenantService
WorkspaceService WorkspaceService
SocialService SocialService
PlayerService PlayerService
ExternalSystemService ExternalSystemService
ActionService ActionService
CountryService CountryService
ActionItemService ActionItemService
BillableService BillableService
LogEntryService LogEntryService
CommentService CommentService
ContractService ContractService
ServiceLineItemService ServiceLineItemService
OpportunityService OpportunityService
MasterPlanService MasterPlanService
BillingProfileService BillingProfileService
InvoiceService InvoiceService
OrganizationPlanService OrganizationPlanService
SlackService SlackService
ReminderService ReminderService
OrderService OrderService
OfferingService OfferingService
}
func InitServices(log logger.Logger, driver *neo4j.DriverWithContext, cfg *config.Config, commonServices *commonService.Services, commonAuthServices *commonAuthService.Services, grpcClients *grpc_client.Clients, gormDb *gorm.DB) *Services {
repositories := repository.InitRepos(driver, cfg.Neo4j.Database, gormDb)
services := Services{
CommonServices: commonServices,
CommonAuthServices: commonAuthServices,
BankAccountService: NewBankAccountService(log, repositories, grpcClients),
OrganizationService: NewOrganizationService(log, repositories, grpcClients),
CustomFieldService: NewCustomFieldService(log, repositories),
UserService: NewUserService(log, repositories, grpcClients),
FieldSetService: NewFieldSetService(log, repositories),
EntityTemplateService: NewEntityTemplateService(log, repositories),
FieldSetTemplateService: NewFieldSetTemplateService(log, repositories),
CustomFieldTemplateService: NewCustomFieldTemplateService(log, repositories),
LocationService: NewLocationService(log, repositories),
TagService: NewTagService(log, repositories),
DomainService: NewDomainService(log, repositories),
PageViewService: NewPageViewService(log, repositories),
AttachmentService: NewAttachmentService(log, repositories),
TenantService: NewTenantService(log, repositories, grpcClients),
WorkspaceService: NewWorkspaceService(log, repositories),
SocialService: NewSocialService(log, repositories),
ExternalSystemService: NewExternalSystemService(log, repositories),
ActionService: NewActionService(log, repositories),
CountryService: NewCountryService(log, repositories),
ActionItemService: NewActionItemService(log, repositories),
BillableService: NewBillableService(log, repositories),
LogEntryService: NewLogEntryService(log, repositories),
CommentService: NewCommentService(log, repositories),
MasterPlanService: NewMasterPlanService(log, repositories, grpcClients),
OrganizationPlanService: NewOrganizationPlanService(log, repositories, grpcClients),
ReminderService: NewReminderService(log, repositories, grpcClients),
OrderService: NewOrderService(log, repositories),
OfferingService: NewOfferingService(log, repositories, grpcClients),
}
services.Repositories = repositories
services.IssueService = NewIssueService(log, repositories, &services)
services.PhoneNumberService = NewPhoneNumberService(log, repositories, grpcClients, &services)
services.JobRoleService = NewJobRoleService(log, repositories, &services)
services.CalendarService = NewCalendarService(log, repositories, &services)
services.EmailService = NewEmailService(log, repositories, &services, grpcClients)
services.ContactService = NewContactService(log, repositories, grpcClients, &services)
services.NoteService = NewNoteService(log, repositories, &services)
services.TimelineEventService = NewTimelineEventService(log, repositories, &services)
services.SearchService = NewSearchService(log, repositories, &services)
services.QueryService = NewDashboardService(log, repositories, &services)
services.InteractionEventService = NewInteractionEventService(log, repositories, &services)
services.InteractionSessionService = NewInteractionSessionService(log, repositories, &services)
services.AnalysisService = NewAnalysisService(log, repositories, &services)
services.MeetingService = NewMeetingService(log, repositories, &services)
services.PlayerService = NewPlayerService(repositories, &services)
services.ContractService = NewContractService(log, repositories, grpcClients, &services)
services.ServiceLineItemService = NewServiceLineItemService(log, repositories, grpcClients, &services)
services.OpportunityService = NewOpportunityService(log, repositories, grpcClients, &services)
services.BillingProfileService = NewBillingProfileService(log, repositories, grpcClients)
services.InvoiceService = NewInvoiceService(log, repositories, grpcClients, &services)
services.SlackService = NewSlackService(log, repositories, grpcClients, &services)
log.Info("Init cache service")
services.Cache = NewCacheService(&services)
services.Cache.InitCache()
log.Info("Init cache service done")
services.Cfg = cfg
return &services
}