diff --git a/src/audit_api.go b/src/audit_api.go
index fd64068..740c043 100644
--- a/src/audit_api.go
+++ b/src/audit_api.go
@@ -1,4 +1,4 @@
-package databunker
+package main
import (
"fmt"
diff --git a/src/audit_db.go b/src/audit_db.go
index 21877a8..10d86b9 100644
--- a/src/audit_db.go
+++ b/src/audit_db.go
@@ -1,4 +1,4 @@
-package databunker
+package main
import (
"encoding/json"
diff --git a/src/bunker.go b/src/bunker.go
index b73610d..c669fbe 100644
--- a/src/bunker.go
+++ b/src/bunker.go
@@ -1,6 +1,6 @@
-// Package databunker - Personal Identifiable Information (PII) database.
+// Package main - Personal Identifiable Information (PII) database.
// For more info check https://paranoidguy.com
-package databunker
+package main
import (
"context"
@@ -172,6 +172,7 @@ func (e mainEnv) setupRouter() *httprouter.Router {
router.GET("/v1/consent/:mode/:address", e.consentAllUserRecords)
router.GET("/v1/consent/:mode/:address/:brief", e.consentUserRecord)
router.GET("/v1/consents/:brief", e.consentFilterRecords)
+ router.GET("/v1/consents", e.consentTypes)
router.POST("/v1/consent/:mode/:address/:brief", e.consentAccept)
router.DELETE("/v1/consent/:mode/:address/:brief", e.consentWithdraw)
diff --git a/src/bunker_test.go b/src/bunker_test.go
index e3e7d9c..c33c54a 100644
--- a/src/bunker_test.go
+++ b/src/bunker_test.go
@@ -1,4 +1,4 @@
-package databunker
+package main
import (
"encoding/hex"
diff --git a/src/consent_api.go b/src/consent_api.go
index d8274dd..0b359b6 100644
--- a/src/consent_api.go
+++ b/src/consent_api.go
@@ -1,4 +1,4 @@
-package databunker
+package main
import (
"fmt"
@@ -377,3 +377,22 @@ func (e mainEnv) consentFilterRecords(w http.ResponseWriter, r *http.Request, ps
str := fmt.Sprintf(`{"status":"ok","total":%d,"rows":%s}`, numRecords, resultJSON)
w.Write([]byte(str))
}
+
+func (e mainEnv) consentTypes(w http.ResponseWriter, r *http.Request, ps httprouter.Params) {
+ if e.enforceAuth(w, r, nil) == "" {
+ return
+ }
+ resultJSON, numRecords, err := e.db.getConsentTypes()
+ if err != nil {
+ returnError(w, r, "internal error", 405, err, nil)
+ return
+ }
+ fmt.Printf("Total count of rows: %d\n", numRecords)
+ //fmt.Fprintf(w, "
title")
+ w.Header().Set("Access-Control-Allow-Origin", "*")
+ w.Header().Set("Content-Type", "application/json; charset=utf-8")
+ w.WriteHeader(200)
+ str := fmt.Sprintf(`{"status":"ok","total":%d,"briefs":%s}`, numRecords, resultJSON)
+ w.Write([]byte(str))
+}
+
diff --git a/src/consent_db.go b/src/consent_db.go
index 061a33c..56c8a91 100644
--- a/src/consent_db.go
+++ b/src/consent_db.go
@@ -1,4 +1,4 @@
-package databunker
+package main
import (
"encoding/json"
@@ -194,6 +194,25 @@ func (dbobj dbcon) filterConsentRecords(brief string, offset int32, limit int32)
return resultJSON, count, nil
}
+func (dbobj dbcon) getConsentTypes() ([]byte, int64, error) {
+ records, err := dbobj.getUniqueList(TblName.Consent, "brief")
+ if err != nil {
+ return nil, 0, err
+ }
+ count:= int64(len(records))
+ // we need to return only list of briefs
+ var result []string
+ for _, rec := range records {
+ result = append(result, rec["brief"].(string))
+ }
+ resultJSON, err := json.Marshal(result)
+ if err != nil {
+ return nil, 0, err
+ }
+ //fmt.Printf("Found multiple documents (array of pointers): %+v\n", results)
+ return resultJSON, count, nil
+}
+
func (dbobj dbcon) expireConsentRecords(notifyURL string) error {
records, err := dbobj.getExpiring(TblName.Consent, "status", "yes")
if err != nil {
diff --git a/src/cryptor.go b/src/cryptor.go
index 2f83bf5..db80050 100644
--- a/src/cryptor.go
+++ b/src/cryptor.go
@@ -1,4 +1,4 @@
-package databunker
+package main
import (
"crypto/aes"
diff --git a/src/email.go b/src/email.go
index a6d572d..697a253 100644
--- a/src/email.go
+++ b/src/email.go
@@ -1,4 +1,4 @@
-package databunker
+package main
import (
"fmt"
diff --git a/src/notify.go b/src/notify.go
index 2c68f08..85ea375 100644
--- a/src/notify.go
+++ b/src/notify.go
@@ -1,4 +1,4 @@
-package databunker
+package main
import (
"bytes"
diff --git a/src/qldb.go b/src/qldb.go
index 115513b..5c89d46 100644
--- a/src/qldb.go
+++ b/src/qldb.go
@@ -1,4 +1,4 @@
-package databunker
+package main
// github.com/mattn/go-sqlite3
@@ -677,6 +677,14 @@ func (dbobj dbcon) getExpiring(t Tbl, keyName string, keyValue string) ([]bson.M
return dbobj.getListDo(q, keyValue)
}
+func (dbobj dbcon) getUniqueList(t Tbl, keyName string) ([]bson.M, error) {
+ table := getTable(t)
+ keyName = escapeName(keyName)
+ q := "select distinct " + keyName +" from " + table + " ORDER BY " + keyName
+ fmt.Printf("q: %s\n", q)
+ return dbobj.getListDo(q, "")
+}
+
func (dbobj dbcon) getList(t Tbl, keyName string, keyValue string, start int32, limit int32) ([]bson.M, error) {
table := getTable(t)
if limit > 100 {
@@ -797,12 +805,12 @@ func (dbobj dbcon) indexNewApp(appName string) {
}
defer tx.Rollback()
_, err = tx.Exec("CREATE TABLE IF NOT EXISTS " + appName + ` (
- token STRING,
+ token STRING,
md5 STRING,
rofields STRING,
- data STRING,
- status STRING,
- ` + "`when` int);")
+ data STRING,
+ status STRING,
+ ` + "`when` int);")
if err != nil {
return
}
diff --git a/src/requests_api.go b/src/requests_api.go
index a5ba091..3f20738 100644
--- a/src/requests_api.go
+++ b/src/requests_api.go
@@ -1,4 +1,4 @@
-package databunker
+package main
import (
"fmt"
diff --git a/src/requests_db.go b/src/requests_db.go
index a383ae8..75fae80 100644
--- a/src/requests_db.go
+++ b/src/requests_db.go
@@ -1,4 +1,4 @@
-package databunker
+package main
import (
"encoding/json"
diff --git a/src/sessions_api.go b/src/sessions_api.go
index 1dbe56e..6434c65 100644
--- a/src/sessions_api.go
+++ b/src/sessions_api.go
@@ -1,4 +1,4 @@
-package databunker
+package main
import (
"encoding/json"
diff --git a/src/sessions_db.go b/src/sessions_db.go
index 2d4094e..91e6821 100644
--- a/src/sessions_db.go
+++ b/src/sessions_db.go
@@ -1,4 +1,4 @@
-package databunker
+package main
import (
"encoding/base64"
diff --git a/src/sharedrecords_api.go b/src/sharedrecords_api.go
index 2f909bc..9d85b71 100644
--- a/src/sharedrecords_api.go
+++ b/src/sharedrecords_api.go
@@ -1,4 +1,4 @@
-package databunker
+package main
import (
"encoding/json"
diff --git a/src/sharedrecords_db.go b/src/sharedrecords_db.go
index 7af1bd0..4ecb9f6 100644
--- a/src/sharedrecords_db.go
+++ b/src/sharedrecords_db.go
@@ -1,4 +1,4 @@
-package databunker
+package main
import (
"errors"
diff --git a/src/sharedrecords_test.go b/src/sharedrecords_test.go
index 69630de..5ea01cf 100644
--- a/src/sharedrecords_test.go
+++ b/src/sharedrecords_test.go
@@ -1,4 +1,4 @@
-package databunker
+package main
import (
"encoding/json"
diff --git a/src/sms.go b/src/sms.go
index d35070f..042eb09 100644
--- a/src/sms.go
+++ b/src/sms.go
@@ -1,4 +1,4 @@
-package databunker
+package main
import (
"encoding/json"
diff --git a/src/userapps_api.go b/src/userapps_api.go
index 2feaa2f..8b37dff 100644
--- a/src/userapps_api.go
+++ b/src/userapps_api.go
@@ -1,4 +1,4 @@
-package databunker
+package main
import (
"encoding/json"
diff --git a/src/userapps_db.go b/src/userapps_db.go
index 977e2a1..688e165 100644
--- a/src/userapps_db.go
+++ b/src/userapps_db.go
@@ -1,4 +1,4 @@
-package databunker
+package main
import (
"crypto/md5"
diff --git a/src/userapps_test.go b/src/userapps_test.go
index 8ee06b4..067526e 100644
--- a/src/userapps_test.go
+++ b/src/userapps_test.go
@@ -1,4 +1,4 @@
-package databunker
+package main
import (
"encoding/json"
diff --git a/src/users_api.go b/src/users_api.go
index 3b220bb..0d6454a 100644
--- a/src/users_api.go
+++ b/src/users_api.go
@@ -1,4 +1,4 @@
-package databunker
+package main
import (
"fmt"
diff --git a/src/users_db.go b/src/users_db.go
index 110a947..887f6e6 100644
--- a/src/users_db.go
+++ b/src/users_db.go
@@ -1,4 +1,4 @@
-package databunker
+package main
import (
"crypto/md5"
diff --git a/src/users_test.go b/src/users_test.go
index 2e492fb..7150d5d 100644
--- a/src/users_test.go
+++ b/src/users_test.go
@@ -1,4 +1,4 @@
-package databunker
+package main
import (
"fmt"
diff --git a/src/utils.go b/src/utils.go
index fab99ae..8ae7e0f 100644
--- a/src/utils.go
+++ b/src/utils.go
@@ -1,4 +1,4 @@
-package databunker
+package main
import (
"crypto/sha256"
diff --git a/src/utils_test.go b/src/utils_test.go
index 18958c6..6181263 100644
--- a/src/utils_test.go
+++ b/src/utils_test.go
@@ -1,4 +1,4 @@
-package databunker
+package main
import (
"net/http/httptest"
diff --git a/src/xtokens_db.go b/src/xtokens_db.go
index 7d5d994..e3979fb 100644
--- a/src/xtokens_db.go
+++ b/src/xtokens_db.go
@@ -1,4 +1,4 @@
-package databunker
+package main
import (
"errors"
diff --git a/src/xtokens_test.go b/src/xtokens_test.go
index a409540..2261f99 100644
--- a/src/xtokens_test.go
+++ b/src/xtokens_test.go
@@ -1,4 +1,4 @@
-package databunker
+package main
import (
"fmt"