import "github.com/qri-io/qri/repo/profile"
Package profile defines a qri peer profile
id.go profile.go store.go type.go
ErrNotFound is the not found err for the profile package
ID is a distinct thing form a peer.ID. They are *NOT* meant to be interchangable but the mechanics of peer.ID & profile.ID are exactly the same
IDB58Decode proxies a lower level API b/c I'm lazy & don't like
IDB58MustDecode panics if an ID doesn't decode. useful for testing
NewB58ID creates a peer.ID from a base58-encoded string
MarshalJSON implements the json.Marshaler interface for ID
MarshalYAML implements the yaml.Marshaler interface for ID
String implements the stringer interface for ID
UnmarshalJSON implements the json.Unmarshaler interface for ID
UnmarshalYAML implements the yaml.Unmarshaler interface for ID
MemStore is an in-memory implementation of the profile Store interface
DeleteProfile removes a peer from this store
GetProfile give's peer info from the store for a given peer.ID
List hands the full list of peers back
PeerIDs gives the peer.IDs list for a given peername
PeerProfile returns profile data for a given peer.ID TODO - this func implies that peer.ID's are only ever connected to the same profile. That could cause trouble.
PeernameID gives the ID for a given peername
PutProfile adds a peer to this store
type Profile struct { ID ID `json:"id"` // Created timestamp Created time.Time `json:"created,omitempty"` // Updated timestamp Updated time.Time `json:"updated,omitempty"` // PrivKey is the peer's private key, should only be present for the current peer PrivKey crypto.PrivKey `json:"_,omitempty"` // Peername a handle for the user. min 1 character, max 80. composed of [_,-,a-z,A-Z,1-9] Peername string `json:"peername"` // specifies weather this is a user or an organization Type Type `json:"type"` // user's email address Email string `json:"email"` // user name field. could be first[space]last, but not strictly enforced Name string `json:"name"` // user-filled description of self Description string `json:"description"` // url this user wants the world to click HomeURL string `json:"homeUrl"` // color this user likes to use as their theme color Color string `json:"color"` // Thumb path for user's thumbnail Thumb string `json:"thumb"` // Profile photo Photo string `json:"photo"` // Poster photo for users's profile page Poster string `json:"poster"` // Twitter is a peer's twitter handle Twitter string `json:"twitter"` // Online indicates if this peer is currently connected to the network Online bool `json:"online,omitempty"` // PeerIDs lists any network PeerIDs associated with this profile // in the form /network/peerID PeerIDs []peer.ID `json:"peerIDs"` // NetworkAddrs keeps a list of locations for this profile on the network as multiaddr strings NetworkAddrs []ma.Multiaddr `json:"networkAddrs,omitempty"` }
Profile defines peer profile details
func NewProfile(p *config.ProfilePod) (pro *Profile, err error)
NewProfile allocates a profile from a CodingProfile
func (p *Profile) Decode(sp *config.ProfilePod) error
Decode turns a ProfilePod into a profile.Profile
func (p Profile) Encode() (*config.ProfilePod, error)
Encode returns a ProfilePod for a given profile
type Store interface { List() (map[ID]*Profile, error) PeerIDs(id ID) ([]peer.ID, error) PeernameID(peername string) (ID, error) PutProfile(profile *Profile) error GetProfile(id ID) (*Profile, error) PeerProfile(id peer.ID) (*Profile, error) DeleteProfile(id ID) error }
Store is a store of profile information
NewMemStore allocates a MemStore
Type enumerates different types of peers
const ( // TypePeer is a single person TypePeer Type = iota // TypeOrganization represents a group of people TypeOrganization )
ParseType decodes a peer type from a string
MarshalJSON implements the json.Marshaler interface for Type
String implements the Stringer interface for Type
UnmarshalJSON implements the json.Unmarshaler interface for Type
Package profile imports 10 packages (graph) and is imported by 9 packages. Updated 2019-11-20. Refresh now. Tools for package owners.