MCPcopy
hub / github.com/daptin/daptin / CreateWithoutFilter

Method CreateWithoutFilter

server/resource/resource_create.go:40–998  ·  view source on GitHub ↗

Create a new object. Newly created object/struct must be in Responder. Possible Responder status codes are: - 201 Created: Resource was created and needs to be returned - 202 Accepted: Processing is delayed, return nothing - 204 No Content: Resource created with a client generated ID, and no fields

(obj interface{}, req api2go.Request, createTransaction *sqlx.Tx)

Source from the content-addressed store, hash-verified

38// the server
39
40func (dbResource *DbResource) CreateWithoutFilter(obj interface{}, req api2go.Request, createTransaction *sqlx.Tx) (map[string]interface{}, error) {
41 log.Tracef("Create object of type [%v]", dbResource.model.GetName())
42 data := obj.(api2go.Api2GoModel)
43 user := req.PlainRequest.Context().Value("user")
44 sessionUser := &auth.SessionUser{}
45
46 if user != nil {
47 sessionUser = user.(*auth.SessionUser)
48 }
49
50 isAdmin := IsAdminWithTransaction(sessionUser, createTransaction)
51
52 attrs := data.GetAllAsAttributes()
53
54 allColumns := dbResource.model.GetColumns()
55
56 dataToInsert := make(map[string]interface{})
57 u, _ := uuid.NewV7()
58 newObjectReferenceId := daptinid.DaptinReferenceId(u)
59
60 var colsList []interface{}
61 var valsList []interface{}
62 for _, col := range allColumns {
63
64 //log.Printf("Add column: %v", col.ColumnName)
65 if col.IsAutoIncrement {
66 continue
67 }
68
69 if col.ColumnName == "created_at" {
70 continue
71 }
72
73 if col.ColumnName == "updated_at" {
74 continue
75 }
76
77 if col.ColumnName == "permission" {
78 continue
79 }
80
81 if col.ColumnName == USER_ACCOUNT_ID_COLUMN && dbResource.model.GetName() != "user_account_user_account_id_has_usergroup_usergroup_id" {
82 continue
83 }
84
85 //log.Printf("Check column: %v", col.ColumnName)
86
87 columnValue, columnValueOk := attrs[col.ColumnName]
88
89 if !columnValueOk || columnValue == nil {
90 if col.DefaultValue != "" {
91 //var err error
92 if len(col.DefaultValue) > 2 && col.DefaultValue[0] == col.DefaultValue[len(col.DefaultValue)-1] {
93 columnValue = col.DefaultValue[1 : len(col.DefaultValue)-1]
94 } else {
95 columnValue = col.DefaultValue
96 }
97 } else {

Callers 11

CreateWithTransactionMethod · 0.95
CreateMethod · 0.95
DaptinSmtpDbResourceFunction · 0.80
storeOAuthStateFunction · 0.80
DoActionMethod · 0.80
DoActionMethod · 0.80
DoActionMethod · 0.80
GetTLSConfigMethod · 0.80
StoreTokenMethod · 0.80
CopyMessagesMethod · 0.80