now that exchange api has been folded in with the rest of the m365 api, it doesn't make sense to maintain an options file with only exchange functionality. Since all calls in the file were used 1:1 with some api func, those options have been moved into their respective api funcs. --- #### Does this PR need a docs update or release note? - [x] ⛔ No #### Type of change - [x] 🧹 Tech Debt/Cleanup #### Issue(s) * #1996 #### Test Plan - [x] 💚 E2E
59 lines
925 B
Go
59 lines
925 B
Go
package str
|
|
|
|
import (
|
|
"fmt"
|
|
"strconv"
|
|
|
|
"github.com/alcionai/clues"
|
|
|
|
"github.com/alcionai/corso/src/internal/common/ptr"
|
|
)
|
|
|
|
// parseBool returns the bool value represented by the string
|
|
// or false on error
|
|
func ParseBool(v string) bool {
|
|
s, err := strconv.ParseBool(v)
|
|
if err != nil {
|
|
return false
|
|
}
|
|
|
|
return s
|
|
}
|
|
|
|
func FromMapToAny(k string, m map[string]any) (string, error) {
|
|
if len(m) == 0 {
|
|
return "", clues.New("missing entry").With("map_key", k)
|
|
}
|
|
|
|
return FromAny(m[k])
|
|
}
|
|
|
|
func FromAny(a any) (string, error) {
|
|
if a == nil {
|
|
return "", clues.New("missing value")
|
|
}
|
|
|
|
sp, ok := a.(*string)
|
|
if ok {
|
|
return ptr.Val(sp), nil
|
|
}
|
|
|
|
s, ok := a.(string)
|
|
if ok {
|
|
return s, nil
|
|
}
|
|
|
|
return "", clues.New(fmt.Sprintf("unexpected type: %T", a))
|
|
}
|
|
|
|
// First returns the first non-zero valued string
|
|
func First(vs ...string) string {
|
|
for _, v := range vs {
|
|
if len(v) > 0 {
|
|
return v
|
|
}
|
|
}
|
|
|
|
return ""
|
|
}
|