mirror of
https://github.com/optim-enterprises-bv/databunker.git
synced 2025-10-30 17:37:50 +00:00
optimize code to use a dynamic array of strings instead of map
This commit is contained in:
@@ -245,35 +245,21 @@ func (dbobj MySQLDB) decodeFieldsValues(data interface{}) (string, []interface{}
|
|||||||
return fields, values
|
return fields, values
|
||||||
}
|
}
|
||||||
|
|
||||||
func (dbobj MySQLDB) decodeForCleanup(data interface{}) string {
|
func (dbobj MySQLDB) decodeForCleanup(bdel []string) string {
|
||||||
fields := ""
|
fields := ""
|
||||||
|
if bdel != nil {
|
||||||
switch t := data.(type) {
|
for _, colname := range bdel {
|
||||||
case primitive.M:
|
if len(fields) == 0 {
|
||||||
for idx := range data.(primitive.M) {
|
fields = dbobj.escapeName(colname) + "=null"
|
||||||
if len(fields) == 0 {
|
} else {
|
||||||
fields = dbobj.escapeName(idx) + "=null"
|
fields = fields + "," + dbobj.escapeName(colname) + "=null"
|
||||||
} else {
|
}
|
||||||
fields = fields + "," + dbobj.escapeName(idx) + "=null"
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
return fields
|
|
||||||
case map[string]interface{}:
|
|
||||||
for idx := range data.(map[string]interface{}) {
|
|
||||||
if len(fields) == 0 {
|
|
||||||
fields = dbobj.escapeName(idx) + "=null"
|
|
||||||
} else {
|
|
||||||
fields = fields + "," + dbobj.escapeName(idx) + "=null"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
default:
|
|
||||||
fmt.Printf("decodeForCleanup: wrong type: %s\n", t)
|
|
||||||
}
|
|
||||||
|
|
||||||
return fields
|
return fields
|
||||||
}
|
}
|
||||||
|
|
||||||
func (dbobj MySQLDB) decodeForUpdate(bdoc *bson.M, bdel *bson.M) (string, []interface{}) {
|
func (dbobj MySQLDB) decodeForUpdate(bdoc *bson.M, bdel []string) (string, []interface{}) {
|
||||||
values := make([]interface{}, 0)
|
values := make([]interface{}, 0)
|
||||||
fields := ""
|
fields := ""
|
||||||
|
|
||||||
@@ -295,15 +281,15 @@ func (dbobj MySQLDB) decodeForUpdate(bdoc *bson.M, bdel *bson.M) (string, []inte
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if bdel != nil {
|
if bdel != nil {
|
||||||
for idx := range *bdel {
|
for _, colname := range bdel {
|
||||||
if len(fields) == 0 {
|
if len(fields) == 0 {
|
||||||
fields = dbobj.escapeName(idx) + "=null"
|
fields = dbobj.escapeName(colname) + "=null"
|
||||||
} else {
|
} else {
|
||||||
fields = fields + "," + dbobj.escapeName(idx) + "=null"
|
fields = fields + "," + dbobj.escapeName(colname) + "=null"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return fields, values
|
return fields, values
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -408,7 +394,7 @@ func (dbobj MySQLDB) UpdateRecordInTable(table string, keyName string, keyValue
|
|||||||
|
|
||||||
// UpdateRecord2 updates database record
|
// UpdateRecord2 updates database record
|
||||||
func (dbobj MySQLDB) UpdateRecord2(t Tbl, keyName string, keyValue string,
|
func (dbobj MySQLDB) UpdateRecord2(t Tbl, keyName string, keyValue string,
|
||||||
keyName2 string, keyValue2 string, bdoc *bson.M, bdel *bson.M) (int64, error) {
|
keyName2 string, keyValue2 string, bdoc *bson.M, bdel []string) (int64, error) {
|
||||||
table := GetTable(t)
|
table := GetTable(t)
|
||||||
filter := dbobj.escapeName(keyName) + "=\"" + keyValue + "\" AND " +
|
filter := dbobj.escapeName(keyName) + "=\"" + keyValue + "\" AND " +
|
||||||
dbobj.escapeName(keyName2) + "=\"" + keyValue2 + "\""
|
dbobj.escapeName(keyName2) + "=\"" + keyValue2 + "\""
|
||||||
@@ -417,13 +403,13 @@ func (dbobj MySQLDB) UpdateRecord2(t Tbl, keyName string, keyValue string,
|
|||||||
|
|
||||||
// UpdateRecordInTable2 updates database record
|
// UpdateRecordInTable2 updates database record
|
||||||
func (dbobj MySQLDB) UpdateRecordInTable2(table string, keyName string,
|
func (dbobj MySQLDB) UpdateRecordInTable2(table string, keyName string,
|
||||||
keyValue string, keyName2 string, keyValue2 string, bdoc *bson.M, bdel *bson.M) (int64, error) {
|
keyValue string, keyName2 string, keyValue2 string, bdoc *bson.M, bdel []string) (int64, error) {
|
||||||
filter := dbobj.escapeName(keyName) + "=\"" + keyValue + "\" AND " +
|
filter := dbobj.escapeName(keyName) + "=\"" + keyValue + "\" AND " +
|
||||||
dbobj.escapeName(keyName2) + "=\"" + keyValue2 + "\""
|
dbobj.escapeName(keyName2) + "=\"" + keyValue2 + "\""
|
||||||
return dbobj.updateRecordInTableDo(table, filter, bdoc, bdel)
|
return dbobj.updateRecordInTableDo(table, filter, bdoc, bdel)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (dbobj MySQLDB) updateRecordInTableDo(table string, filter string, bdoc *bson.M, bdel *bson.M) (int64, error) {
|
func (dbobj MySQLDB) updateRecordInTableDo(table string, filter string, bdoc *bson.M, bdel []string) (int64, error) {
|
||||||
op, values := dbobj.decodeForUpdate(bdoc, bdel)
|
op, values := dbobj.decodeForUpdate(bdoc, bdel)
|
||||||
q := "update " + table + " SET " + op + " WHERE " + filter
|
q := "update " + table + " SET " + op + " WHERE " + filter
|
||||||
//fmt.Printf("q: %s\n", q)
|
//fmt.Printf("q: %s\n", q)
|
||||||
@@ -708,9 +694,9 @@ func (dbobj MySQLDB) DeleteExpired(t Tbl, keyName string, keyValue string) (int6
|
|||||||
}
|
}
|
||||||
|
|
||||||
// CleanupRecord nullifies specific feilds in records in database
|
// CleanupRecord nullifies specific feilds in records in database
|
||||||
func (dbobj MySQLDB) CleanupRecord(t Tbl, keyName string, keyValue string, data interface{}) (int64, error) {
|
func (dbobj MySQLDB) CleanupRecord(t Tbl, keyName string, keyValue string, bdel []string) (int64, error) {
|
||||||
tbl := GetTable(t)
|
tbl := GetTable(t)
|
||||||
cleanup := dbobj.decodeForCleanup(data)
|
cleanup := dbobj.decodeForCleanup(bdel)
|
||||||
q := "update " + tbl + " SET " + cleanup + " WHERE " + dbobj.escapeName(keyName) + "=?"
|
q := "update " + tbl + " SET " + cleanup + " WHERE " + dbobj.escapeName(keyName) + "=?"
|
||||||
fmt.Printf("q: %s\n", q)
|
fmt.Printf("q: %s\n", q)
|
||||||
|
|
||||||
|
|||||||
@@ -243,35 +243,21 @@ func (dbobj PGSQLDB) decodeFieldsValues(data interface{}) (string, []interface{}
|
|||||||
return fields, values
|
return fields, values
|
||||||
}
|
}
|
||||||
|
|
||||||
func (dbobj PGSQLDB) decodeForCleanup(data interface{}) string {
|
func (dbobj PGSQLDB) decodeForCleanup(bdel []string) string {
|
||||||
fields := ""
|
fields := ""
|
||||||
|
if bdel != nil {
|
||||||
switch t := data.(type) {
|
for _, colname := range bdel {
|
||||||
case primitive.M:
|
if len(fields) == 0 {
|
||||||
for idx := range data.(primitive.M) {
|
fields = dbobj.escapeName(colname) + "=null"
|
||||||
if len(fields) == 0 {
|
} else {
|
||||||
fields = dbobj.escapeName(idx) + "=null"
|
fields = fields + "," + dbobj.escapeName(colname) + "=null"
|
||||||
} else {
|
}
|
||||||
fields = fields + "," + dbobj.escapeName(idx) + "=null"
|
}
|
||||||
}
|
}
|
||||||
}
|
return fields
|
||||||
return fields
|
|
||||||
case map[string]interface{}:
|
|
||||||
for idx := range data.(map[string]interface{}) {
|
|
||||||
if len(fields) == 0 {
|
|
||||||
fields = dbobj.escapeName(idx) + "=null"
|
|
||||||
} else {
|
|
||||||
fields = fields + "," + dbobj.escapeName(idx) + "=null"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
default:
|
|
||||||
fmt.Printf("decodeForCleanup: wrong type: %s\n", t)
|
|
||||||
}
|
|
||||||
|
|
||||||
return fields
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (dbobj PGSQLDB) decodeForUpdate(bdoc *bson.M, bdel *bson.M) (string, []interface{}) {
|
func (dbobj PGSQLDB) decodeForUpdate(bdoc *bson.M, bdel []string) (string, []interface{}) {
|
||||||
values := make([]interface{}, 0)
|
values := make([]interface{}, 0)
|
||||||
fields := ""
|
fields := ""
|
||||||
|
|
||||||
@@ -294,11 +280,11 @@ func (dbobj PGSQLDB) decodeForUpdate(bdoc *bson.M, bdel *bson.M) (string, []inte
|
|||||||
}
|
}
|
||||||
|
|
||||||
if bdel != nil {
|
if bdel != nil {
|
||||||
for idx := range *bdel {
|
for _, colname := range bdel {
|
||||||
if len(fields) == 0 {
|
if len(fields) == 0 {
|
||||||
fields = dbobj.escapeName(idx) + "=null"
|
fields = dbobj.escapeName(colname) + "=null"
|
||||||
} else {
|
} else {
|
||||||
fields = fields + "," + dbobj.escapeName(idx) + "=null"
|
fields = fields + "," + dbobj.escapeName(colname) + "=null"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -406,7 +392,7 @@ func (dbobj PGSQLDB) UpdateRecordInTable(table string, keyName string, keyValue
|
|||||||
|
|
||||||
// UpdateRecord2 updates database record
|
// UpdateRecord2 updates database record
|
||||||
func (dbobj PGSQLDB) UpdateRecord2(t Tbl, keyName string, keyValue string,
|
func (dbobj PGSQLDB) UpdateRecord2(t Tbl, keyName string, keyValue string,
|
||||||
keyName2 string, keyValue2 string, bdoc *bson.M, bdel *bson.M) (int64, error) {
|
keyName2 string, keyValue2 string, bdoc *bson.M, bdel []string) (int64, error) {
|
||||||
table := GetTable(t)
|
table := GetTable(t)
|
||||||
filter := dbobj.escapeName(keyName) + "='" + keyValue + "' AND " +
|
filter := dbobj.escapeName(keyName) + "='" + keyValue + "' AND " +
|
||||||
dbobj.escapeName(keyName2) + "='" + keyValue2 + "'"
|
dbobj.escapeName(keyName2) + "='" + keyValue2 + "'"
|
||||||
@@ -415,13 +401,13 @@ func (dbobj PGSQLDB) UpdateRecord2(t Tbl, keyName string, keyValue string,
|
|||||||
|
|
||||||
// UpdateRecordInTable2 updates database record
|
// UpdateRecordInTable2 updates database record
|
||||||
func (dbobj PGSQLDB) UpdateRecordInTable2(table string, keyName string,
|
func (dbobj PGSQLDB) UpdateRecordInTable2(table string, keyName string,
|
||||||
keyValue string, keyName2 string, keyValue2 string, bdoc *bson.M, bdel *bson.M) (int64, error) {
|
keyValue string, keyName2 string, keyValue2 string, bdoc *bson.M, bdel []string) (int64, error) {
|
||||||
filter := dbobj.escapeName(keyName) + "='" + keyValue + "' AND " +
|
filter := dbobj.escapeName(keyName) + "='" + keyValue + "' AND " +
|
||||||
dbobj.escapeName(keyName2) + "='" + keyValue2 + "'"
|
dbobj.escapeName(keyName2) + "='" + keyValue2 + "'"
|
||||||
return dbobj.updateRecordInTableDo(table, filter, bdoc, bdel)
|
return dbobj.updateRecordInTableDo(table, filter, bdoc, bdel)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (dbobj PGSQLDB) updateRecordInTableDo(table string, filter string, bdoc *bson.M, bdel *bson.M) (int64, error) {
|
func (dbobj PGSQLDB) updateRecordInTableDo(table string, filter string, bdoc *bson.M, bdel []string) (int64, error) {
|
||||||
op, values := dbobj.decodeForUpdate(bdoc, bdel)
|
op, values := dbobj.decodeForUpdate(bdoc, bdel)
|
||||||
q := "update " + table + " SET " + op + " WHERE " + filter
|
q := "update " + table + " SET " + op + " WHERE " + filter
|
||||||
//fmt.Printf("q: %s\n", q)
|
//fmt.Printf("q: %s\n", q)
|
||||||
@@ -706,9 +692,9 @@ func (dbobj PGSQLDB) DeleteExpired(t Tbl, keyName string, keyValue string) (int6
|
|||||||
}
|
}
|
||||||
|
|
||||||
// CleanupRecord nullifies specific feilds in records in database
|
// CleanupRecord nullifies specific feilds in records in database
|
||||||
func (dbobj PGSQLDB) CleanupRecord(t Tbl, keyName string, keyValue string, data interface{}) (int64, error) {
|
func (dbobj PGSQLDB) CleanupRecord(t Tbl, keyName string, keyValue string, bdel []string) (int64, error) {
|
||||||
tbl := GetTable(t)
|
tbl := GetTable(t)
|
||||||
cleanup := dbobj.decodeForCleanup(data)
|
cleanup := dbobj.decodeForCleanup(bdel)
|
||||||
q := "update " + tbl + " SET " + cleanup + " WHERE " + dbobj.escapeName(keyName) + "=$1"
|
q := "update " + tbl + " SET " + cleanup + " WHERE " + dbobj.escapeName(keyName) + "=$1"
|
||||||
fmt.Printf("q: %s\n", q)
|
fmt.Printf("q: %s\n", q)
|
||||||
|
|
||||||
|
|||||||
@@ -233,35 +233,21 @@ func (dbobj SQLiteDB) decodeFieldsValues(data interface{}) (string, []interface{
|
|||||||
return fields, values
|
return fields, values
|
||||||
}
|
}
|
||||||
|
|
||||||
func (dbobj SQLiteDB) decodeForCleanup(data interface{}) string {
|
func (dbobj SQLiteDB) decodeForCleanup(bdel []string) string {
|
||||||
fields := ""
|
fields := ""
|
||||||
|
if bdel != nil {
|
||||||
switch t := data.(type) {
|
for _, colname := range bdel {
|
||||||
case primitive.M:
|
if len(fields) == 0 {
|
||||||
for idx := range data.(primitive.M) {
|
fields = dbobj.escapeName(colname) + "=null"
|
||||||
if len(fields) == 0 {
|
} else {
|
||||||
fields = dbobj.escapeName(idx) + "=null"
|
fields = fields + "," + dbobj.escapeName(colname) + "=null"
|
||||||
} else {
|
}
|
||||||
fields = fields + "," + dbobj.escapeName(idx) + "=null"
|
}
|
||||||
}
|
}
|
||||||
}
|
return fields
|
||||||
return fields
|
|
||||||
case map[string]interface{}:
|
|
||||||
for idx := range data.(map[string]interface{}) {
|
|
||||||
if len(fields) == 0 {
|
|
||||||
fields = dbobj.escapeName(idx) + "=null"
|
|
||||||
} else {
|
|
||||||
fields = fields + "," + dbobj.escapeName(idx) + "=null"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
default:
|
|
||||||
log.Printf("decodeForCleanup: wrong type: %s\n", t)
|
|
||||||
}
|
|
||||||
|
|
||||||
return fields
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (dbobj SQLiteDB) decodeForUpdate(bdoc *bson.M, bdel *bson.M) (string, []interface{}) {
|
func (dbobj SQLiteDB) decodeForUpdate(bdoc *bson.M, bdel []string) (string, []interface{}) {
|
||||||
values := make([]interface{}, 0)
|
values := make([]interface{}, 0)
|
||||||
fields := ""
|
fields := ""
|
||||||
|
|
||||||
@@ -283,15 +269,15 @@ func (dbobj SQLiteDB) decodeForUpdate(bdoc *bson.M, bdel *bson.M) (string, []int
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if bdel != nil {
|
if bdel != nil {
|
||||||
for idx := range *bdel {
|
for _, colname := range bdel {
|
||||||
if len(fields) == 0 {
|
if len(fields) == 0 {
|
||||||
fields = dbobj.escapeName(idx) + "=null"
|
fields = dbobj.escapeName(colname) + "=null"
|
||||||
} else {
|
} else {
|
||||||
fields = fields + "," + dbobj.escapeName(idx) + "=null"
|
fields = fields + "," + dbobj.escapeName(colname) + "=null"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return fields, values
|
return fields, values
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -397,7 +383,7 @@ func (dbobj SQLiteDB) UpdateRecordInTable(table string, keyName string, keyValue
|
|||||||
|
|
||||||
// UpdateRecord2 updates database record
|
// UpdateRecord2 updates database record
|
||||||
func (dbobj SQLiteDB) UpdateRecord2(t Tbl, keyName string, keyValue string,
|
func (dbobj SQLiteDB) UpdateRecord2(t Tbl, keyName string, keyValue string,
|
||||||
keyName2 string, keyValue2 string, bdoc *bson.M, bdel *bson.M) (int64, error) {
|
keyName2 string, keyValue2 string, bdoc *bson.M, bdel []string) (int64, error) {
|
||||||
table := GetTable(t)
|
table := GetTable(t)
|
||||||
filter := dbobj.escapeName(keyName) + "=\"" + keyValue + "\" AND " +
|
filter := dbobj.escapeName(keyName) + "=\"" + keyValue + "\" AND " +
|
||||||
dbobj.escapeName(keyName2) + "=\"" + keyValue2 + "\""
|
dbobj.escapeName(keyName2) + "=\"" + keyValue2 + "\""
|
||||||
@@ -406,13 +392,13 @@ func (dbobj SQLiteDB) UpdateRecord2(t Tbl, keyName string, keyValue string,
|
|||||||
|
|
||||||
// UpdateRecordInTable2 updates database record
|
// UpdateRecordInTable2 updates database record
|
||||||
func (dbobj SQLiteDB) UpdateRecordInTable2(table string, keyName string,
|
func (dbobj SQLiteDB) UpdateRecordInTable2(table string, keyName string,
|
||||||
keyValue string, keyName2 string, keyValue2 string, bdoc *bson.M, bdel *bson.M) (int64, error) {
|
keyValue string, keyName2 string, keyValue2 string, bdoc *bson.M, bdel []string) (int64, error) {
|
||||||
filter := dbobj.escapeName(keyName) + "=\"" + keyValue + "\" AND " +
|
filter := dbobj.escapeName(keyName) + "=\"" + keyValue + "\" AND " +
|
||||||
dbobj.escapeName(keyName2) + "=\"" + keyValue2 + "\""
|
dbobj.escapeName(keyName2) + "=\"" + keyValue2 + "\""
|
||||||
return dbobj.updateRecordInTableDo(table, filter, bdoc, bdel)
|
return dbobj.updateRecordInTableDo(table, filter, bdoc, bdel)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (dbobj SQLiteDB) updateRecordInTableDo(table string, filter string, bdoc *bson.M, bdel *bson.M) (int64, error) {
|
func (dbobj SQLiteDB) updateRecordInTableDo(table string, filter string, bdoc *bson.M, bdel []string) (int64, error) {
|
||||||
op, values := dbobj.decodeForUpdate(bdoc, bdel)
|
op, values := dbobj.decodeForUpdate(bdoc, bdel)
|
||||||
q := "update " + table + " SET " + op + " WHERE " + filter
|
q := "update " + table + " SET " + op + " WHERE " + filter
|
||||||
//fmt.Printf("q: %s\n", q)
|
//fmt.Printf("q: %s\n", q)
|
||||||
@@ -690,11 +676,11 @@ func (dbobj SQLiteDB) DeleteExpired(t Tbl, keyName string, keyValue string) (int
|
|||||||
}
|
}
|
||||||
|
|
||||||
// CleanupRecord nullifies specific feilds in records in database
|
// CleanupRecord nullifies specific feilds in records in database
|
||||||
func (dbobj SQLiteDB) CleanupRecord(t Tbl, keyName string, keyValue string, data interface{}) (int64, error) {
|
func (dbobj SQLiteDB) CleanupRecord(t Tbl, keyName string, keyValue string, bdel []string) (int64, error) {
|
||||||
tbl := GetTable(t)
|
tbl := GetTable(t)
|
||||||
cleanup := dbobj.decodeForCleanup(data)
|
cleanup := dbobj.decodeForCleanup(bdel)
|
||||||
q := "update " + tbl + " SET " + cleanup + " WHERE " + dbobj.escapeName(keyName) + "=$1"
|
q := "update " + tbl + " SET " + cleanup + " WHERE " + dbobj.escapeName(keyName) + "=$1"
|
||||||
log.Printf("q: %s\n", q)
|
log.Printf("CleanupRecord q: %s\n", q)
|
||||||
|
|
||||||
tx, err := dbobj.db.Begin()
|
tx, err := dbobj.db.Begin()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
@@ -83,8 +83,8 @@ type BackendDB interface {
|
|||||||
CountRecords(Tbl, string, string) (int64, error)
|
CountRecords(Tbl, string, string) (int64, error)
|
||||||
UpdateRecord(Tbl, string, string, *bson.M) (int64, error)
|
UpdateRecord(Tbl, string, string, *bson.M) (int64, error)
|
||||||
UpdateRecordInTable(string, string, string, *bson.M) (int64, error)
|
UpdateRecordInTable(string, string, string, *bson.M) (int64, error)
|
||||||
UpdateRecord2(Tbl, string, string, string, string, *bson.M, *bson.M) (int64, error)
|
UpdateRecord2(Tbl, string, string, string, string, *bson.M, []string) (int64, error)
|
||||||
UpdateRecordInTable2(string, string, string, string, string, *bson.M, *bson.M) (int64, error)
|
UpdateRecordInTable2(string, string, string, string, string, *bson.M, []string) (int64, error)
|
||||||
LookupRecord(Tbl, bson.M) (bson.M, error)
|
LookupRecord(Tbl, bson.M) (bson.M, error)
|
||||||
GetRecord(Tbl, string, string) (bson.M, error)
|
GetRecord(Tbl, string, string) (bson.M, error)
|
||||||
GetRecordFromTable(string, string, string) (bson.M, error)
|
GetRecordFromTable(string, string, string) (bson.M, error)
|
||||||
@@ -94,7 +94,7 @@ type BackendDB interface {
|
|||||||
DeleteRecord2(Tbl, string, string, string, string) (int64, error)
|
DeleteRecord2(Tbl, string, string, string, string) (int64, error)
|
||||||
DeleteExpired0(Tbl, int32) (int64, error)
|
DeleteExpired0(Tbl, int32) (int64, error)
|
||||||
DeleteExpired(Tbl, string, string) (int64, error)
|
DeleteExpired(Tbl, string, string) (int64, error)
|
||||||
CleanupRecord(Tbl, string, string, interface{}) (int64, error)
|
CleanupRecord(Tbl, string, string, []string) (int64, error)
|
||||||
GetExpiring(Tbl, string, string) ([]bson.M, error)
|
GetExpiring(Tbl, string, string) ([]bson.M, error)
|
||||||
GetUniqueList(Tbl, string) ([]bson.M, error)
|
GetUniqueList(Tbl, string) ([]bson.M, error)
|
||||||
GetList0(Tbl, int32, int32, string) ([]bson.M, error)
|
GetList0(Tbl, int32, int32, string) ([]bson.M, error)
|
||||||
|
|||||||
@@ -209,7 +209,7 @@ func (dbobj dbcon) updateUserRecordDo(jsonDataPatch []byte, userTOKEN string, ol
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, nil, false, err
|
return nil, nil, false, err
|
||||||
}
|
}
|
||||||
bdel := bson.M{}
|
var bdel []string
|
||||||
sig := oldUserBson["md5"].(string)
|
sig := oldUserBson["md5"].(string)
|
||||||
// create new user record
|
// create new user record
|
||||||
bdoc := bson.M{}
|
bdoc := bson.M{}
|
||||||
@@ -256,7 +256,7 @@ func (dbobj dbcon) updateUserRecordDo(jsonDataPatch []byte, userTOKEN string, ol
|
|||||||
//fmt.Printf("adding index3? %s\n", raw[idx])
|
//fmt.Printf("adding index3? %s\n", raw[idx])
|
||||||
bdoc[idx+"idx"] = hashString(dbobj.hash, newIdxFinalValue)
|
bdoc[idx+"idx"] = hashString(dbobj.hash, newIdxFinalValue)
|
||||||
} else if len(newIdxFinalValue) == 0 {
|
} else if len(newIdxFinalValue) == 0 {
|
||||||
bdel[idx+"idx"] = ""
|
bdel = append(bdel, idx+"idx")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -274,7 +274,7 @@ func (dbobj dbcon) updateUserRecordDo(jsonDataPatch []byte, userTOKEN string, ol
|
|||||||
//filter2 := bson.D{{"token", userTOKEN}, {"md5", sig}}
|
//filter2 := bson.D{{"token", userTOKEN}, {"md5", sig}}
|
||||||
|
|
||||||
//fmt.Printf("op json: %s\n", update)
|
//fmt.Printf("op json: %s\n", update)
|
||||||
result, err := dbobj.store.UpdateRecord2(storage.TblName.Users, "token", userTOKEN, "md5", sig, &bdoc, &bdel)
|
result, err := dbobj.store.UpdateRecord2(storage.TblName.Users, "token", userTOKEN, "md5", sig, &bdoc, bdel)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, nil, false, err
|
return nil, nil, false, err
|
||||||
}
|
}
|
||||||
@@ -517,7 +517,7 @@ func (dbobj dbcon) deleteUserRecord(userJSON []byte, userTOKEN string, conf Conf
|
|||||||
dbobj.store.DeleteRecord(storage.TblName.Sessions, "token", userTOKEN)
|
dbobj.store.DeleteRecord(storage.TblName.Sessions, "token", userTOKEN)
|
||||||
|
|
||||||
dataJSON, record := cleanupRecord(userJSON)
|
dataJSON, record := cleanupRecord(userJSON)
|
||||||
bdel := bson.M{}
|
var bdel []string
|
||||||
if dataJSON != nil {
|
if dataJSON != nil {
|
||||||
oldUserBson, err := dbobj.lookupUserRecord(userTOKEN)
|
oldUserBson, err := dbobj.lookupUserRecord(userTOKEN)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -535,19 +535,19 @@ func (dbobj dbcon) deleteUserRecord(userJSON []byte, userTOKEN string, conf Conf
|
|||||||
fmt.Printf("Preservice email idx\n")
|
fmt.Printf("Preservice email idx\n")
|
||||||
bdoc["emailidx"] = oldUserBson["emailidx"].(string)
|
bdoc["emailidx"] = oldUserBson["emailidx"].(string)
|
||||||
} else {
|
} else {
|
||||||
bdel["emailidx"] = ""
|
bdel = append(bdel, "emailidx")
|
||||||
}
|
}
|
||||||
if _, ok := record["phone"]; ok {
|
if _, ok := record["phone"]; ok {
|
||||||
fmt.Printf("Preservice phone idx\n")
|
fmt.Printf("Preservice phone idx\n")
|
||||||
bdoc["phoneidx"] = oldUserBson["phoneidx"].(string)
|
bdoc["phoneidx"] = oldUserBson["phoneidx"].(string)
|
||||||
} else {
|
} else {
|
||||||
bdel["phoneidx"] = ""
|
bdel = append(bdel, "phoneidx")
|
||||||
}
|
}
|
||||||
if _, ok := record["login"]; ok {
|
if _, ok := record["login"]; ok {
|
||||||
fmt.Printf("Preservice login idx\n")
|
fmt.Printf("Preservice login idx\n")
|
||||||
bdoc["loginidx"] = oldUserBson["loginidx"].(string)
|
bdoc["loginidx"] = oldUserBson["loginidx"].(string)
|
||||||
} else {
|
} else {
|
||||||
bdel["loginidx"] = ""
|
bdel = append(bdel, "loginidx")
|
||||||
}
|
}
|
||||||
encoded, _ := encrypt(dbobj.masterKey, userKeyBinary, dataJSON)
|
encoded, _ := encrypt(dbobj.masterKey, userKeyBinary, dataJSON)
|
||||||
encodedStr := base64.StdEncoding.EncodeToString(encoded)
|
encodedStr := base64.StdEncoding.EncodeToString(encoded)
|
||||||
@@ -556,7 +556,7 @@ func (dbobj dbcon) deleteUserRecord(userJSON []byte, userTOKEN string, conf Conf
|
|||||||
md5Hash := md5.Sum([]byte(encodedStr))
|
md5Hash := md5.Sum([]byte(encodedStr))
|
||||||
bdoc["md5"] = base64.StdEncoding.EncodeToString(md5Hash[:])
|
bdoc["md5"] = base64.StdEncoding.EncodeToString(md5Hash[:])
|
||||||
bdoc["token"] = userTOKEN
|
bdoc["token"] = userTOKEN
|
||||||
result, err := dbobj.store.UpdateRecord2(storage.TblName.Users, "token", userTOKEN, "md5", sig, &bdoc, &bdel)
|
result, err := dbobj.store.UpdateRecord2(storage.TblName.Users, "token", userTOKEN, "md5", sig, &bdoc, bdel)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return false, err
|
return false, err
|
||||||
}
|
}
|
||||||
@@ -566,12 +566,7 @@ func (dbobj dbcon) deleteUserRecord(userJSON []byte, userTOKEN string, conf Conf
|
|||||||
return false, nil
|
return false, nil
|
||||||
}
|
}
|
||||||
// cleanup user record
|
// cleanup user record
|
||||||
bdel["data"] = ""
|
bdel = append(bdel, "data", "key", "loginidx", "emailidx", "phoneidx", "customidx")
|
||||||
bdel["key"] = ""
|
|
||||||
bdel["loginidx"] = ""
|
|
||||||
bdel["emailidx"] = ""
|
|
||||||
bdel["phoneidx"] = ""
|
|
||||||
bdel["customidx"] = ""
|
|
||||||
result, err := dbobj.store.CleanupRecord(storage.TblName.Users, "token", userTOKEN, bdel)
|
result, err := dbobj.store.CleanupRecord(storage.TblName.Users, "token", userTOKEN, bdel)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return false, err
|
return false, err
|
||||||
|
|||||||
Reference in New Issue
Block a user