MCPcopy Create free account
hub / github.com/devld/go-drive / Initialize

Function Initialize

initialize.go:21–86  ·  view source on GitHub ↗
(ctx context.Context, ch *registry.ComponentsHolder)

Source from the content-addressed store, hash-verified

19)
20
21func Initialize(ctx context.Context, ch *registry.ComponentsHolder) (*gin.Engine, error) {
22 config, err := common.InitConfig(ch)
23 if err != nil {
24 return nil, err
25 }
26 bus := event.NewBus(ch)
27 db, err := storage.NewDB(config, ch)
28 if err != nil {
29 return nil, err
30 }
31 driveDAO := storage.NewDriveDAO(db, ch)
32 pathMountDAO := storage.NewPathMountDAO(db, ch)
33 driveDataDAO := storage.NewDriveDataDAO(db, ch)
34 driveCacheDAO := storage.NewDriveCacheDAO(db, ch)
35 rootDrive, err := drive.NewRootDrive(ctx, config, driveDAO, pathMountDAO, driveDataDAO, driveCacheDAO, ch)
36 if err != nil {
37 return nil, err
38 }
39 pathPermissionDAO := storage.NewPathPermissionDAO(db, ch)
40 optionsDAO := storage.NewOptionsDAO(db, ch)
41 pathMetaDAO := storage.NewPathMetaDAO(db, ch)
42 access, err := drive.NewAccess(ch, rootDrive, pathPermissionDAO, optionsDAO, pathMetaDAO, bus)
43 if err != nil {
44 return nil, err
45 }
46 runner := task.NewPondRunner(config, ch)
47 service, err := search.NewService(ch, config, optionsDAO, rootDrive, runner, bus)
48 if err != nil {
49 return nil, err
50 }
51 userDAO := storage.NewUserDAO(db, ch)
52 sessionDAO := storage.NewSessionDAO(db, ch)
53 dbTokenStore, err := server.NewDBTokenStore(sessionDAO, userDAO, config, ch)
54 if err != nil {
55 return nil, err
56 }
57 maker, err := thumbnail.NewMaker(config, optionsDAO, ch)
58 if err != nil {
59 return nil, err
60 }
61 signer := utils.NewSigner()
62 chunkUploader, err := server.NewChunkUploader(config)
63 if err != nil {
64 return nil, err
65 }
66 groupDAO := storage.NewGroupDAO(db, userDAO, ch)
67 jobDAO := storage.NewJobDAO(db, ch)
68 fileBucketDAO := storage.NewFileBucketDAO(db, ch)
69 jobExecutor, err := job.NewJobExecutor(jobDAO, ch)
70 if err != nil {
71 return nil, err
72 }
73 fileMessageSource, err := i18n.NewFileMessageSource(langResourceFS())
74 if err != nil {
75 return nil, err
76 }
77 engine, err := server.InitServer(config, ch, bus, rootDrive, access,
78 service, dbTokenStore, maker, signer, chunkUploader, runner,

Callers 1

mainFunction · 0.85

Calls 15

InitConfigFunction · 0.92
NewBusFunction · 0.92
NewDBFunction · 0.92
NewDriveDAOFunction · 0.92
NewPathMountDAOFunction · 0.92
NewDriveDataDAOFunction · 0.92
NewDriveCacheDAOFunction · 0.92
NewRootDriveFunction · 0.92
NewPathPermissionDAOFunction · 0.92
NewOptionsDAOFunction · 0.92
NewPathMetaDAOFunction · 0.92
NewAccessFunction · 0.92

Tested by

no test coverage detected