summaryrefslogtreecommitdiffstats
path: root/internal/formatter/github.go
blob: 6164b6423a385adf538b067c6edcbbf0a852a896 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
package formatter

import (
	"encoding/json"
	"fmt"
	"git.db.org.ai/dborg/internal/models"
	"strings"
)

func FormatGitHubLeads(lead *models.GitHubLead, jsonOutput bool) (string, error) {
	if jsonOutput {
		data, err := json.Marshal(lead)
		if err != nil {
			return "", fmt.Errorf("failed to marshal GitHub lead: %w", err)
		}
		return string(data), nil
	}

	var output strings.Builder
	output.WriteString(fmt.Sprintf("Name: %s\n", lead.Name))
	output.WriteString(fmt.Sprintf("Email: %s\n", lead.Email))
	output.WriteString(fmt.Sprintf("Username: %s\n", lead.Username))

	if lead.Company != "" {
		output.WriteString(fmt.Sprintf("Company: %s\n", lead.Company))
	}
	if lead.Location != "" {
		output.WriteString(fmt.Sprintf("Location: %s\n", lead.Location))
	}
	if lead.Website != "" {
		output.WriteString(fmt.Sprintf("Website: %s\n", lead.Website))
	}
	if lead.Twitter != "" {
		output.WriteString(fmt.Sprintf("Twitter: %s\n", lead.Twitter))
	}
	if lead.PFP != "" {
		output.WriteString(fmt.Sprintf("Profile Picture: %s\n", lead.PFP))
	}

	output.WriteString("---\n")

	return output.String(), nil
}