Documentation ¶
Overview ¶
Package profile defines a qri peer profile
Index ¶
- Variables
- type ID
- type MemStore
- func (m *MemStore) DeleteProfile(id ID) error
- func (m *MemStore) GetProfile(id ID) (*Profile, error)
- func (m *MemStore) List() (map[ID]*Profile, error)
- func (m *MemStore) PeerIDs(id ID) ([]peer.ID, error)
- func (m *MemStore) PeerProfile(id peer.ID) (*Profile, error)
- func (m *MemStore) PeernameID(peername string) (ID, error)
- func (m *MemStore) PutProfile(profile *Profile) error
- type Profile
- type Store
- type Type
Constants ¶
This section is empty.
Variables ¶
var ErrNotFound = fmt.Errorf("profile: not found")
ErrNotFound is the not found err for the profile package
Functions ¶
This section is empty.
Types ¶
type ID ¶ added in v0.3.0
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
func IDB58Decode ¶ added in v0.3.0
IDB58Decode proxies a lower level API b/c I'm lazy & don't like
func IDB58DecodeOrEmpty ¶ added in v0.9.5
IDB58DecodeOrEmpty decodes an ID, or returns an empty ID if decoding fails
func IDB58MustDecode ¶ added in v0.3.0
IDB58MustDecode panics if an ID doesn't decode. useful for testing
func IDFromPeerID ¶ added in v0.9.5
IDFromPeerID type casts a peer.ID from ipfs into an ID
func IDRawByteString ¶ added in v0.9.5
IDRawByteString constructs an ID from a raw byte string. No decoding happens. Should only be used in tests
func (ID) MarshalJSON ¶ added in v0.3.0
MarshalJSON implements the json.Marshaler interface for ID
func (*ID) MarshalYAML ¶ added in v0.3.0
MarshalYAML implements the yaml.Marshaler interface for ID
func (*ID) UnmarshalJSON ¶ added in v0.3.0
UnmarshalJSON implements the json.Unmarshaler interface for ID
func (*ID) UnmarshalYAML ¶ added in v0.3.0
UnmarshalYAML implements the yaml.Unmarshaler interface for ID
type MemStore ¶ added in v0.3.0
MemStore is an in-memory implementation of the profile Store interface
func (*MemStore) DeleteProfile ¶ added in v0.3.0
DeleteProfile removes a peer from this store
func (*MemStore) GetProfile ¶ added in v0.3.0
GetProfile give's peer info from the store for a given peer.ID
func (*MemStore) PeerProfile ¶ added in v0.3.0
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.
func (*MemStore) PeernameID ¶ added in v0.3.0
PeernameID gives the ID for a given peername
func (*MemStore) PutProfile ¶ added in v0.3.0
PutProfile adds a peer to this store
type Profile ¶
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 ¶ added in v0.3.1
func NewProfile(p *config.ProfilePod) (pro *Profile, err error)
NewProfile allocates a profile from a CodingProfile
type Store ¶ added in v0.3.0
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
type Type ¶ added in v0.3.0
type Type int
Type enumerates different types of peers
func (Type) MarshalJSON ¶ added in v0.3.0
MarshalJSON implements the json.Marshaler interface for Type
func (*Type) UnmarshalJSON ¶ added in v0.3.0
UnmarshalJSON implements the json.Unmarshaler interface for Type