fork of indigo with slightly nicer lexgen
at main 578 B view raw
1package util 2 3import ( 4 "fmt" 5 "strings" 6) 7 8type ParsedUri struct { 9 Did string 10 Collection string 11 Rkey string 12} 13 14func ParseAtUri(uri string) (*ParsedUri, error) { 15 if !strings.HasPrefix(uri, "at://") { 16 return nil, fmt.Errorf("AT uris must be prefixed with 'at://'") 17 } 18 19 trimmed := strings.TrimPrefix(uri, "at://") 20 parts := strings.Split(trimmed, "/") 21 if len(parts) != 3 { 22 return nil, fmt.Errorf("AT uris must have three parts: did, collection, tid") 23 } 24 25 return &ParsedUri{ 26 Did: parts[0], 27 Collection: parts[1], 28 Rkey: parts[2], 29 }, nil 30}