Add support for colour attribute on allowances in backend (#77)
Closes #76 Reviewed-on: #77
This commit was merged in pull request #77.
This commit is contained in:
30
backend/colour.go
Normal file
30
backend/colour.go
Normal file
@@ -0,0 +1,30 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
)
|
||||
|
||||
func ConvertStringToColour(colourStr string) (int, error) {
|
||||
if len(colourStr) == 0 {
|
||||
return 0xFF0000, nil // Default colour if no string is provided
|
||||
}
|
||||
if colourStr[0] == '#' {
|
||||
colourStr = colourStr[1:]
|
||||
}
|
||||
if len(colourStr) != 6 && len(colourStr) != 3 {
|
||||
return 0, errors.New("colour must be a valid hex string")
|
||||
}
|
||||
var colour int
|
||||
_, err := fmt.Sscanf(colourStr, "%x", &colour)
|
||||
if err != nil {
|
||||
return 0, fmt.Errorf("invalid colour format: %v", err)
|
||||
}
|
||||
if len(colourStr) == 3 {
|
||||
r := (colour & 0xF00) >> 8
|
||||
g := (colour & 0x0F0) >> 4
|
||||
b := (colour & 0x00F) >> 0
|
||||
colour = (r << 16 << 4) | (g << 8 << 4) | (b << 0 << 4)
|
||||
}
|
||||
return colour, nil
|
||||
}
|
||||
Reference in New Issue
Block a user