package dynamicproxy import ( "errors" "strings" ) /* Endpoint Functions */ // Get virtual directory handler from given URI func (ep *ProxyEndpoint) GetVirtualDirectoryHandlerFromRequestURI(requestURI string) *VirtualDirectoryEndpoint { for _, vdir := range ep.VirtualDirectories { if strings.HasPrefix(requestURI, vdir.MatchingPath) { return vdir } } return nil } // Get virtual directory handler by matching path (exact match required) func (ep *ProxyEndpoint) GetVirtualDirectoryRuleByMatchingPath(matchingPath string) *VirtualDirectoryEndpoint { for _, vdir := range ep.VirtualDirectories { if vdir.MatchingPath == matchingPath { return vdir } } return nil } func (ep *ProxyEndpoint) RemoveVirtualDirectoryRuleByMatchingPath(matchingPath string) error { entryFound := false newVirtualDirectoryList := []*VirtualDirectoryEndpoint{} for _, vdir := range ep.VirtualDirectories { if vdir.MatchingPath == matchingPath { entryFound = true } else { newVirtualDirectoryList = append(newVirtualDirectoryList, vdir) } } if entryFound { //Update the list of vdirs ep.VirtualDirectories = newVirtualDirectoryList return nil } return errors.New("target virtual directory routing rule not found") }