MCPcopy
hub / github.com/tinode/chat / genDb

Function genDb

tinode-db/gendb.go:18–411  ·  view source on GitHub ↗
(data *Data, p2pDel bool)

Source from the content-addressed store, hash-verified

16)
17
18func genDb(data *Data, p2pDel bool) {
19 var err error
20 var botAccount string
21
22 if len(data.Users) == 0 {
23 log.Println("No data provided, stopping")
24
25 return
26 }
27
28 // Add authentication record
29 authHandler := store.Store.GetAuthHandler("basic")
30 authHandler.Init([]byte(`{"add_to_tags": true}`), "basic")
31
32 nameIndex := make(map[string]string, len(data.Users))
33
34 log.Println("Generating users...")
35
36 for _, uu := range data.Users {
37 state, err := types.NewObjState(uu.State)
38 if err != nil {
39 log.Fatal(err)
40 }
41 user := types.User{
42 State: state,
43 Access: types.DefaultAccess{
44 Auth: types.ModeCAuth,
45 Anon: types.ModeNone,
46 },
47 Tags: uu.Tags,
48 Public: parsePublic(&uu.Public, data.datapath),
49 }
50 if !uu.Trusted.IsZero() {
51 user.Trusted = uu.Trusted
52 }
53 user.CreatedAt = getCreatedTime(uu.CreatedAt)
54
55 user.Tags = append(user.Tags, "basic:"+uu.Username)
56 if uu.Email != "" {
57 user.Tags = append(user.Tags, "email:"+uu.Email)
58 }
59 if uu.Tel != "" {
60 user.Tags = append(user.Tags, "tel:"+uu.Tel)
61 }
62
63 // store.Users.Create will subscribe user to !me topic but won't create a !me topic
64 if _, err := store.Users.Create(&user, uu.Private); err != nil {
65 log.Fatal(err)
66 }
67
68 // Save credentials: email and phone number as if they were confirmed.
69 if uu.Email != "" {
70 if _, err := store.Users.UpsertCred(&types.Credential{
71 User: user.Id,
72 Method: "email",
73 Value: uu.Email,
74 Done: true,
75 }); err != nil {

Callers 1

mainFunction · 0.85

Calls 15

IsZeroMethod · 0.95
UnmarshalTextMethod · 0.95
StringMethod · 0.95
NewObjStateFunction · 0.92
ParseAuthLevelFunction · 0.92
ParseUidFunction · 0.92
GrpToChnFunction · 0.92
TimeNowFunction · 0.92
parsePublicFunction · 0.85
getCreatedTimeFunction · 0.85
getPasswordFunction · 0.85
PrintlnMethod · 0.80

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…