Initial work marking communications
And a bunch of lint fixes
This commit is contained in:
parent
67c99436d1
commit
3153e8bf13
36 changed files with 1958 additions and 487 deletions
|
|
@ -37,6 +37,7 @@ import (
|
|||
"github.com/Gleipnir-Technology/nidus-sync/db/types"
|
||||
"github.com/Gleipnir-Technology/nidus-sync/debug"
|
||||
"github.com/Gleipnir-Technology/nidus-sync/h3utils"
|
||||
"github.com/Gleipnir-Technology/nidus-sync/lint"
|
||||
"github.com/Gleipnir-Technology/nidus-sync/platform/oauth"
|
||||
"github.com/aarondl/opt/omit"
|
||||
"github.com/aarondl/opt/omitnull"
|
||||
|
|
@ -170,7 +171,7 @@ func downloadFieldseekerSchema(ctx context.Context, fieldseekerClient *fieldseek
|
|||
log.Error().Err(err).Msg("Failed to open output")
|
||||
return
|
||||
}
|
||||
defer output.Close()
|
||||
defer lint.LogOnErr(output.Close, "close schema output file")
|
||||
schema, err := fieldseekerClient.SchemaRaw(ctx, uint(i))
|
||||
if err != nil {
|
||||
log.Error().Err(err).Msg("Failed to get schema")
|
||||
|
|
@ -212,7 +213,10 @@ func generateCodeChallenge(codeVerifier string) string {
|
|||
// Generate a random code verifier for PKCE
|
||||
func generateCodeVerifier() string {
|
||||
bytes := make([]byte, 64) // 64 bytes = 512 bits
|
||||
rand.Read(bytes)
|
||||
_, err := rand.Read(bytes)
|
||||
if err != nil {
|
||||
return ""
|
||||
}
|
||||
return base64.RawURLEncoding.EncodeToString(bytes)
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -10,3 +10,25 @@ import (
|
|||
func CommunicationsForOrganization(ctx context.Context, org_id int64) ([]*model.Communication, error) {
|
||||
return querypublic.CommunicationsFromOrganization(ctx, org_id)
|
||||
}
|
||||
func CommunicationFromID(ctx context.Context, user User, comm_id int64) (*model.Communication, error) {
|
||||
comm, err := querypublic.CommunicationFromID(ctx, comm_id)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if comm.OrganizationID != user.Organization.ID {
|
||||
return nil, nil
|
||||
}
|
||||
return comm, nil
|
||||
}
|
||||
func CommunicationMarkInvalid(ctx context.Context, user User, comm_id int64) error {
|
||||
return querypublic.CommunicationMarkInvalid(ctx, int64(user.Organization.ID), int64(user.ID), comm_id)
|
||||
}
|
||||
func CommunicationMarkPendingResponse(ctx context.Context, user User, comm_id int64) error {
|
||||
return querypublic.CommunicationMarkPendingResponse(ctx, int64(user.Organization.ID), int64(user.ID), comm_id)
|
||||
}
|
||||
func CommunicationMarkPossibleIssue(ctx context.Context, user User, comm_id int64) error {
|
||||
return querypublic.CommunicationMarkPossibleIssue(ctx, int64(user.Organization.ID), int64(user.ID), comm_id)
|
||||
}
|
||||
func CommunicationMarkPossibleResolved(ctx context.Context, user User, comm_id int64) error {
|
||||
return querypublic.CommunicationMarkPossibleResolved(ctx, int64(user.Organization.ID), int64(user.ID), comm_id)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -256,9 +256,12 @@ func importCSV[T any](ctx context.Context, file_id int32, parser csvParserFunc[T
|
|||
return fmt.Errorf("process parsed file: %w", err)
|
||||
}
|
||||
|
||||
file.Update(ctx, txn, &models.FileuploadFileSetter{
|
||||
err = file.Update(ctx, txn, &models.FileuploadFileSetter{
|
||||
Status: omit.From(enums.FileuploadFilestatustypeParsed),
|
||||
})
|
||||
if err != nil {
|
||||
return fmt.Errorf("update: %w", err)
|
||||
}
|
||||
log.Info().Int32("file.ID", file.ID).Msg("Set file to parsed")
|
||||
txn.Commit(ctx)
|
||||
return nil
|
||||
|
|
|
|||
|
|
@ -187,9 +187,12 @@ func parseCSVPoollist(ctx context.Context, txn bob.Tx, f *models.FileuploadFile,
|
|||
missing_headers := missingRequiredHeaders(header_types)
|
||||
for _, mh := range missing_headers {
|
||||
errorMissingHeader(ctx, txn, c, mh)
|
||||
f.Update(ctx, txn, &models.FileuploadFileSetter{
|
||||
err = f.Update(ctx, txn, &models.FileuploadFileSetter{
|
||||
Status: omit.From(enums.FileuploadFilestatustypeError),
|
||||
})
|
||||
if err != nil {
|
||||
return pools, fmt.Errorf("update: %w", err)
|
||||
}
|
||||
return pools, nil
|
||||
}
|
||||
for i, header_name := range header_names {
|
||||
|
|
@ -279,7 +282,11 @@ func parseCSVPoollist(ctx context.Context, txn bob.Tx, f *models.FileuploadFile,
|
|||
addError(ctx, txn, c, int32(line_number), int32(i), fmt.Sprintf("'%s' is not a phone number that we recognize. Ideally it should be of the form '+12223334444'", col))
|
||||
continue
|
||||
}
|
||||
text.EnsureInDB(ctx, txn, *phone)
|
||||
err = text.EnsureInDB(ctx, txn, *phone)
|
||||
if err != nil {
|
||||
log.Error().Err(err).Str("phone", col).Msg("ensure in DB failure")
|
||||
continue
|
||||
}
|
||||
setter.PropertyOwnerPhoneE164 = omitnull.From(phone.PhoneString())
|
||||
case headerPoolResidentOwned:
|
||||
boolValue, err := parseBool(col)
|
||||
|
|
@ -294,7 +301,11 @@ func parseCSVPoollist(ctx context.Context, txn bob.Tx, f *models.FileuploadFile,
|
|||
addError(ctx, txn, c, int32(line_number), int32(i), fmt.Sprintf("'%s' is not a phone number that we recognize. Ideally it should be of the form '+12223334444'", col))
|
||||
continue
|
||||
}
|
||||
text.EnsureInDB(ctx, txn, *phone)
|
||||
err = text.EnsureInDB(ctx, txn, *phone)
|
||||
if err != nil {
|
||||
log.Error().Err(err).Str("phone", col).Msg("ensure in DB failure")
|
||||
continue
|
||||
}
|
||||
setter.ResidentPhoneE164 = omitnull.From(phone.PhoneString())
|
||||
case headerPoolTag:
|
||||
tags[header_names[i]] = col
|
||||
|
|
|
|||
|
|
@ -23,6 +23,7 @@ import (
|
|||
"github.com/Gleipnir-Technology/nidus-sync/db"
|
||||
"github.com/Gleipnir-Technology/nidus-sync/db/enums"
|
||||
"github.com/Gleipnir-Technology/nidus-sync/db/models"
|
||||
"github.com/Gleipnir-Technology/nidus-sync/lint"
|
||||
"github.com/aarondl/opt/omit"
|
||||
"github.com/aarondl/opt/omitnull"
|
||||
"github.com/rs/zerolog/log"
|
||||
|
|
@ -67,7 +68,7 @@ func LoadTemplates() error {
|
|||
if err != nil {
|
||||
return fmt.Errorf("Failed to start transaction: %w", err)
|
||||
}
|
||||
defer tx.Rollback(ctx)
|
||||
defer lint.LogOnErrCtx(tx.Rollback, ctx, "rollback")
|
||||
templateByID = make(map[int32]*builtTemplate, 0)
|
||||
for name, p := range all_templates {
|
||||
template_id, err := templateDBID(tx, name, p)
|
||||
|
|
|
|||
|
|
@ -91,7 +91,7 @@ func ComplianceSend(ctx context.Context, row_id int32) error {
|
|||
if err != nil {
|
||||
return fmt.Errorf("start txn: %w", err)
|
||||
}
|
||||
defer txn.Rollback(nil)
|
||||
defer txn.Rollback(ctx)
|
||||
mailer, err := models.CommsMailers.Insert(&models.CommsMailerSetter{
|
||||
AddressID: omit.From(address.ID),
|
||||
Created: omit.From(time.Now()),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue