Files
bootdotdev-fcc-learn-golang…/project/8-feedfollows/src/models.go
wagslane 9be3074de6 first
2023-05-01 15:25:27 -06:00

81 lines
1.9 KiB
Go

package main
import (
"time"
"github.com/bootdotdev/projects/feedfollows/internal/database"
"github.com/google/uuid"
)
type User struct {
ID uuid.UUID `json:"id"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
Name string `json:"name"`
ApiKey string `json:"api_key"`
}
func databaseUserToUser(user database.User) User {
return User{
ID: user.ID,
CreatedAt: user.CreatedAt,
UpdatedAt: user.UpdatedAt,
Name: user.Name,
ApiKey: user.ApiKey,
}
}
type Feed struct {
ID uuid.UUID `json:"id"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
Name string `json:"name"`
Url string `json:"url"`
UserID uuid.UUID `json:"user_id"`
}
func databaseFeedToFeed(feed database.Feed) Feed {
return Feed{
ID: feed.ID,
CreatedAt: feed.CreatedAt,
UpdatedAt: feed.UpdatedAt,
Name: feed.Name,
Url: feed.Url,
UserID: feed.UserID,
}
}
func databaseFeedsToFeeds(feeds []database.Feed) []Feed {
result := make([]Feed, len(feeds))
for i, feed := range feeds {
result[i] = databaseFeedToFeed(feed)
}
return result
}
type FeedFollow struct {
ID uuid.UUID `json:"id"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
UserID uuid.UUID `json:"user_id"`
FeedID uuid.UUID `json:"feed_id"`
}
func databaseFeedFollowToFeedFollow(feedFollow database.FeedFollow) FeedFollow {
return FeedFollow{
ID: feedFollow.ID,
CreatedAt: feedFollow.CreatedAt,
UpdatedAt: feedFollow.UpdatedAt,
UserID: feedFollow.UserID,
FeedID: feedFollow.FeedID,
}
}
func databaseFeedFollowsToFeedFollows(feedFollows []database.FeedFollow) []FeedFollow {
result := make([]FeedFollow, len(feedFollows))
for i, feedFollow := range feedFollows {
result[i] = databaseFeedFollowToFeedFollow(feedFollow)
}
return result
}