Documentation
¶
Index ¶
- type APIToken
- type FirestoreAppleDevJWT
- type FirestoreEvent
- type FirestoreEventMedia
- type FirestoreEventProfileImage
- type FirestoreEventSong
- type FirestoreEventSongs
- type FirestoreEventUser
- type FirestoreMedia
- type FirestoreMediaPlatformData
- type FirestorePlaylist
- type FirestoreSocialPlatform
- type FirestoreSpotifyAuthToken
- type FirestoreUser
- type FirestoreValue
- type MediaMapValue
- type PlaylistSongs
- type SpotifyImage
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type APIToken ¶
type APIToken struct {
CreatedAt string `firestore:"createdAt" json:"createdAt"`
ExpiredAt string `firestore:"expiredAt" json:"expiredAt"`
Token string `firestore:"token" json:"token"`
ExpiresIn int `firestore:"expiresIn" json:"expiresIn"`
}
APIToken contains the access token and the time in which it expires
type FirestoreAppleDevJWT ¶
type FirestoreAppleDevJWT struct {
ExpiresAt int64 `json:"expiresAt"`
IssuedAt int64 `json:"issuedAt"`
Token string `json:"token"`
}
FirestoreAppleDevJWT rerpresents the JWT object that is needed for calling Apple Music API stuff
func GetAppleDeveloperToken ¶
func GetAppleDeveloperToken() (*FirestoreAppleDevJWT, error)
GetAppleDeveloperToken will go to Firestore and grab developer token if it exists and will refresh it if expired
type FirestoreEvent ¶
type FirestoreEvent struct {
OldValue FirestoreValue `json:"oldValue"`
Value FirestoreValue `json:"value"`
UpdateMask struct {
FieldPaths []string `json:"fieldPaths"`
} `json:"updateMask"`
}
FirestoreEvent implements the Firestore event from a trigger function
type FirestoreEventMedia ¶
type FirestoreEventMedia struct {
ID stringValue `json:"id"`
// Technically images should be here, but I don't think we need it.
URL stringValue `json:"url"`
}
FirestoreEventMedia implements the data per provider for a firestore song
type FirestoreEventProfileImage ¶
type FirestoreEventProfileImage struct {
Width integerValue `json:"width,omitempty"`
Height integerValue `json:"height,omitempty"`
URL stringValue `json:"url,omitempty"`
}
FirestoreEventProfileImage implements data needed for firestore image
type FirestoreEventSong ¶
type FirestoreEventSong struct {
Fields struct {
ID stringValue `json:"id"`
Album stringValue `json:"album"`
Creator stringValue `json:"creator"`
Name stringValue `json:"name"`
Type stringValue `json:"type"`
Apple MediaMapValue `json:"apple"`
Spotify MediaMapValue `json:"spotify"`
YouTube MediaMapValue `json:"youtube"`
} `json:"fields"`
Name string `json:"name"`
UpdateTime string `json:"updateTime"`
}
FirestoreEventSong implements the data in the song document
type FirestoreEventSongs ¶
type FirestoreEventSongs struct {
OldValue FirestoreEventSong `json:"oldValue"`
Value FirestoreEventSong `json:"value"`
UpdateMask struct {
FieldPaths []string `json:"fieldPaths"`
} `json:"updateMask"`
}
FirestoreEventSongs implements the values that come from a trigger event based on the songs collection
type FirestoreEventUser ¶
type FirestoreEventUser struct {
ID stringValue `json:"id"`
Email stringValue `json:"email"`
ProfileImage profileImageMapValue `json:"profileImage"`
DisplayName stringValue `json:"displayName"`
Username stringValue `json:"username"`
}
FirestoreEventUser implements the values that are recevied from a firestore trigger
type FirestoreMedia ¶
type FirestoreMedia struct {
ID string `firestore:"id" json:"id"`
Name string `firestore:"name" json:"name"`
Album string `firestore:"album,omitempty" json:"album,omitempty"`
Type string `firestore:"type" json:"type"`
Creator string `firestore:"creator" json:"creator"`
Apple FirestoreMediaPlatformData `firestore:"apple,omitempty" json:"apple,omitempty"`
Spotify FirestoreMediaPlatformData `firestore:"spotify,omitempty" json:"spotify,omitempty"`
YouTube FirestoreMediaPlatformData `firestore:"youtube,omitempty" json:"youtube,omitempty"`
}
FirestoreMedia represents the "song" item stored in the songs collection. We use media because techincally this doens't have to be just a song
type FirestoreMediaPlatformData ¶
type FirestoreMediaPlatformData struct {
ID string `firestore:"id" json:"id"`
URL string `firestore:"url" json:"url"`
Images interface{} `firestore:"images" json:"images"`
}
FirestoreMediaPlatformData includes the specific data for the current media based on platform
type FirestorePlaylist ¶
type FirestorePlaylist struct {
ID string `firestore:"id" json:"id"`
Name string `firestore:"name" json:"name"`
CreatedBy *firestore.DocumentRef `firestore:"createdBy" json:"createdBy"`
Members []*firestore.DocumentRef `firestore:"members" json:"members"`
Songs PlaylistSongs `firestore:"songs" json:"songs"`
Comments interface{} `firestore:"comments" json:"comments"` // This will actually need be an object with key:value pair of songId:[Comments]
CoverArt string `firestore:"coverArt" json:"coverArt"`
}
FirestorePlaylist represents the data for a playlist store in Firestore
type FirestoreSocialPlatform ¶
type FirestoreSocialPlatform struct {
APIToken APIToken `firestore:"apiToken" json:"apiToken"`
RefreshToken string `firestore:"refreshToken" json:"refreshToken"`
Email string `firestore:"email" json:"email"`
ID string `firestore:"id" json:"id"`
IsPreferredService bool `firestore:"isPreferredService" json:"isPreferredService"`
IsPremium bool `firestore:"isPremium" json:"isPremium"`
PlatformName string `firestore:"platformName" json:"platformName"`
ProfileImage SpotifyImage `firestore:"profileImage" json:"profileImage"`
Username string `firestore:"username" json:"username"`
}
FirestoreSocialPlatform represents the data for a social platform stored in Firestore
type FirestoreSpotifyAuthToken ¶
type FirestoreSpotifyAuthToken struct {
ExpiredAt string `json:"expiredAt"`
ExpiresIn int `json:"expiresIn"`
IssuedAt string `json:"issuedAt"`
Token string `json:"token"`
}
FirestoreSpotifyAuthToken represents the auth token object needed for calling Spotify APIs
type FirestoreUser ¶
type FirestoreUser struct {
Email string `firestore:"email" json:"email"`
ID string `firestore:"id" json:"id"`
Playlists []*firestore.DocumentRef `firestore:"playlists" json:"playlists"`
PreferredSocialPlatform *firestore.DocumentRef `firestore:"preferredSocialPlatform" json:"preferredSocialPlatform"`
ProfileImage *SpotifyImage `firestore:"profileImage" json:"profileImage"`
SocialPlatforms []*firestore.DocumentRef `firestore:"socialPlatforms" json:"socialPlatforms"`
DisplayName string `firestore:"displayName" json:"displayName"`
Username string `firestore:"username" json:"username"`
}
FirestoreUser respresents the data stored in Firestore for an user
type FirestoreValue ¶
type FirestoreValue struct {
CreateTime time.Time `json:"createTime"`
Fields FirestoreEventUser `json:"fields"`
Name string `json:"name"`
UpdateTime time.Time `json:"updateTime"`
}
FirestoreValue implements the values that come from a Firestore event
type MediaMapValue ¶
type MediaMapValue struct {
MapValue struct {
Fields FirestoreEventMedia `json:"fields"`
} `json:"mapValue"`
}
MediaMapValue implements the provider nested object value for a Firestore Song Event.
type PlaylistSongs ¶
type PlaylistSongs struct {
AddedBy map[string][]string `firestore:"addedBy" json:"addedBy"`
AllSongs []*firestore.DocumentRef `firestore:"allSongs" json:"allSongs"`
}
PlaylistSongs represents the songs object in a playlist which includes an AddedBy object and AllSongs DocRef Array
type SpotifyImage ¶
type SpotifyImage struct {
Height int `firestore:"height,omitempty" json:"height,omitempty"`
URL string `firestore:"url" json:"url"`
Width int `firestore:"width,omitempty" json:"width,omitempty"`
}
SpotifyImage includes data for any image returned in Spotify