mirror of
https://github.com/superseriousbusiness/gotosocial
synced 2025-06-05 21:59:39 +02:00
[chore]: Bump github.com/gin-contrib/cors from 1.5.0 to 1.7.0 (#2745)
This commit is contained in:
48
vendor/github.com/leodido/go-urn/scim.go
generated
vendored
Normal file
48
vendor/github.com/leodido/go-urn/scim.go
generated
vendored
Normal file
@ -0,0 +1,48 @@
|
||||
package urn
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
|
||||
scimschema "github.com/leodido/go-urn/scim/schema"
|
||||
)
|
||||
|
||||
const errInvalidSCIMURN = "invalid SCIM URN: %s"
|
||||
|
||||
type SCIM struct {
|
||||
Type scimschema.Type
|
||||
Name string
|
||||
Other string
|
||||
pos int
|
||||
}
|
||||
|
||||
func (s SCIM) MarshalJSON() ([]byte, error) {
|
||||
return json.Marshal(s.String())
|
||||
}
|
||||
|
||||
func (s *SCIM) UnmarshalJSON(bytes []byte) error {
|
||||
var str string
|
||||
if err := json.Unmarshal(bytes, &str); err != nil {
|
||||
return err
|
||||
}
|
||||
// Parse as SCIM
|
||||
value, ok := Parse([]byte(str), WithParsingMode(RFC7643Only))
|
||||
if !ok {
|
||||
return fmt.Errorf(errInvalidSCIMURN, str)
|
||||
}
|
||||
if value.RFC() != RFC7643 {
|
||||
return fmt.Errorf(errInvalidSCIMURN, str)
|
||||
}
|
||||
*s = *value.SCIM()
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (s *SCIM) String() string {
|
||||
ret := fmt.Sprintf("urn:ietf:params:scim:%s:%s", s.Type.String(), s.Name)
|
||||
if s.Other != "" {
|
||||
ret += fmt.Sprintf(":%s", s.Other)
|
||||
}
|
||||
|
||||
return ret
|
||||
}
|
Reference in New Issue
Block a user