Add files via upload

This commit is contained in:
Tomáš Dvořák
2025-05-23 09:54:55 +02:00
committed by GitHub
parent a2fec20eb2
commit 511bbccfe6
+20 -15
View File
@@ -20,13 +20,14 @@ type Contact struct {
Position string `json:"position"` Position string `json:"position"`
Phone string `json:"phone,omitempty"` Phone string `json:"phone,omitempty"`
ServicePhone string `json:"service_phone,omitempty"` ServicePhone string `json:"service_phone,omitempty"`
Internal bool `json:"internal"`
} }
type ContactData struct { type ContactData struct {
Contacts []Contact `json:"contacts"` Contacts []Contact `json:"contacts"`
InternalContacts []Contact `json:"internal_contacts"` InternalContacts []Contact `json:"internal_contacts"`
LastUpdated time.Time `json:"last_updated"` LastUpdated time.Time `json:"last_updated"`
FileHash string `json:"file_hash"` FileHash string `json:"file_hash"`
} }
var ( var (
@@ -85,10 +86,10 @@ func loadData() {
if _, err := os.Stat(xlsxFile); os.IsNotExist(err) { if _, err := os.Stat(xlsxFile); os.IsNotExist(err) {
log.Printf("Excel file %s not found, using empty data", xlsxFile) log.Printf("Excel file %s not found, using empty data", xlsxFile)
currentData = &ContactData{ currentData = &ContactData{
Contacts: []Contact{}, Contacts: []Contact{},
InternalContacts: []Contact{}, InternalContacts: []Contact{},
LastUpdated: time.Now(), LastUpdated: time.Now(),
FileHash: "", FileHash: "",
} }
return return
} }
@@ -116,10 +117,10 @@ func loadData() {
log.Printf("Error parsing Excel file: %v", err) log.Printf("Error parsing Excel file: %v", err)
// Use empty data if parsing fails // Use empty data if parsing fails
currentData = &ContactData{ currentData = &ContactData{
Contacts: []Contact{}, Contacts: []Contact{},
InternalContacts: []Contact{}, InternalContacts: []Contact{},
LastUpdated: time.Now(), LastUpdated: time.Now(),
FileHash: currentHash, FileHash: currentHash,
} }
return return
} }
@@ -132,7 +133,7 @@ func loadData() {
log.Printf("Warning: Could not save cached data: %v", err) log.Printf("Warning: Could not save cached data: %v", err)
} }
log.Printf("Loaded %d contacts from Excel file", len(currentData.Contacts) + len(currentData.InternalContacts)) log.Printf("Loaded %d contacts from Excel file", len(currentData.Contacts)+len(currentData.InternalContacts))
} }
func calculateFileHash(filename string) (string, error) { func calculateFileHash(filename string) (string, error) {
@@ -192,7 +193,7 @@ func parseExcelFile(filename string) ([]Contact, error) {
} }
sheetName := sheets[0] sheetName := sheets[0]
// Parse the single table (columns A-E) // Parse the single table (columns A-E)
contacts := parseTable(f, sheetName, "A", "E") contacts := parseTable(f, sheetName, "A", "E")
return contacts, nil return contacts, nil
@@ -301,12 +302,16 @@ func cleanPhoneNumber(phone string) string {
func processContacts(contacts []Contact) *ContactData { func processContacts(contacts []Contact) *ContactData {
var data ContactData var data ContactData
data.InternalContacts = []Contact{} // Initialize as empty array data.Contacts = []Contact{}
data.InternalContacts = []Contact{}
for _, contact := range contacts { for _, contact := range contacts {
if strings.Contains(contact.Name, "Interní") { // Check for internal contacts (either name contains "Interní" or position starts with "Interní")
if strings.Contains(contact.Name, "Interní") || strings.HasPrefix(contact.Position, "Interní") {
contact.Internal = true
data.InternalContacts = append(data.InternalContacts, contact) data.InternalContacts = append(data.InternalContacts, contact)
} else { } else {
contact.Internal = false
data.Contacts = append(data.Contacts, contact) data.Contacts = append(data.Contacts, contact)
} }
} }
@@ -355,7 +360,7 @@ func reloadData(w http.ResponseWriter, r *http.Request) {
loadData() loadData()
w.Header().Set("Content-Type", "application/json") w.Header().Set("Content-Type", "application/json")
fmt.Fprintf(w, `{"status": "reloaded", "contacts_count": %d}`, len(currentData.Contacts) + len(currentData.InternalContacts)) fmt.Fprintf(w, `{"status": "reloaded", "contacts_count": %d}`, len(currentData.Contacts)+len(currentData.InternalContacts))
} }
func getEmbeddedHTML() string { func getEmbeddedHTML() string {