Update storage of reporter in contact
I failed to retrieve the data correctly before as part of the changeover to contact records. Issue: #13
This commit is contained in:
parent
b9f2107c79
commit
e3cc1e99d1
9 changed files with 132 additions and 50 deletions
56
platform/publicreport/contact.go
Normal file
56
platform/publicreport/contact.go
Normal file
|
|
@ -0,0 +1,56 @@
|
|||
package publicreport
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
|
||||
"source.gleipnir.technology/Gleipnir/nidus-sync/db"
|
||||
querycomms "source.gleipnir.technology/Gleipnir/nidus-sync/db/query/comms"
|
||||
"source.gleipnir.technology/Gleipnir/nidus-sync/platform/types"
|
||||
)
|
||||
|
||||
func ContactSimplesFromIDs(ctx context.Context, txn db.Ex, contact_ids []int64) ([]types.ContactSimple, error) {
|
||||
contacts, err := querycomms.ContactsFromIDs(ctx, txn, contact_ids)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("contacts from ids: %w", err)
|
||||
}
|
||||
contact_emails, err := querycomms.ContactEmailByContactIDs(ctx, txn, contact_ids)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("contact emails from ids: %w", err)
|
||||
}
|
||||
contact_phones, err := querycomms.ContactPhoneByContactIDs(ctx, txn, contact_ids)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("contact phones from ids: %w", err)
|
||||
}
|
||||
|
||||
results := make([]types.ContactSimple, len(contact_ids))
|
||||
for i, contact := range contacts {
|
||||
emails, ok := contact_emails[int64(contact.ID)]
|
||||
if !ok {
|
||||
return nil, fmt.Errorf("no emails for contact %d", contact.ID)
|
||||
}
|
||||
phones, ok := contact_phones[int64(contact.ID)]
|
||||
if !ok {
|
||||
return nil, fmt.Errorf("no phones for contact %d", contact.ID)
|
||||
}
|
||||
email_string := ""
|
||||
if len(emails) > 0 {
|
||||
email_string = emails[0].Address
|
||||
}
|
||||
phone_simple := types.PhoneSimple{}
|
||||
if len(phones) > 0 {
|
||||
phone := phones[0]
|
||||
phone_simple = types.PhoneSimple{
|
||||
CanSMS: phone.CanSms,
|
||||
Number: phone.E164,
|
||||
}
|
||||
}
|
||||
results[i] = types.ContactSimple{
|
||||
Email: email_string,
|
||||
ID: contact.ID,
|
||||
Name: contact.Name,
|
||||
Phone: phone_simple,
|
||||
}
|
||||
}
|
||||
return results, nil
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue