-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathmain.groups.go
More file actions
56 lines (50 loc) · 1.57 KB
/
main.groups.go
File metadata and controls
56 lines (50 loc) · 1.57 KB
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
44
45
46
47
48
49
50
51
52
53
54
55
56
package main
import (
"bytes"
"encoding/xml"
apiLib "github.com/hornbill/goApiLib"
)
// searchTeam -- Function to check if passed-through support team name is on the instance
func searchGroup(groupID string, espXmlmc *apiLib.XmlmcInstStruct, buffer *bytes.Buffer) (groupFound bool, groupName string) {
groupFound = false
groupName = ""
//Check Cache
companyIsInCache, GroupNameCache := recordInCache(groupID, "Company")
//-- Check if we have cached the Team already
if companyIsInCache {
groupName = GroupNameCache
groupFound = true
return
}
//-- ESP Query for team
espXmlmc.SetParam("id", groupID)
XMLTeamSearch, xmlmcErr := espXmlmc.Invoke("admin", "groupGetInfo")
if xmlmcErr != nil {
buffer.WriteString(loggerGen(4, "Unable to Search for Group: "+xmlmcErr.Error()))
return groupFound, groupName
}
var xmlRespon xmlmcGroupListResponse
err := xml.Unmarshal([]byte(XMLTeamSearch), &xmlRespon)
if err != nil {
buffer.WriteString(loggerGen(4, "Unable to Search for Group: "+err.Error()))
} else {
if xmlRespon.MethodResult != "ok" {
buffer.WriteString(loggerGen(5, "Unable to Search for Group: "+xmlRespon.State.ErrorRet))
} else {
//-- Check Response
if xmlRespon.Name != "" {
groupFound = true
//-- Add Team to Cache
groupName = xmlRespon.Name
var newGroupForCache groupListStruct
newGroupForCache.ID = groupID
newGroupForCache.Name = groupName
teamNamedMap := []groupListStruct{newGroupForCache}
mutexTeams.Lock()
teams = append(teams, teamNamedMap...)
mutexTeams.Unlock()
}
}
}
return groupFound, groupName
}