mirror of
https://github.com/bootdotdev/fcc-learn-golang-assets.git
synced 2025-12-20 12:11:17 +00:00
81 lines
1.9 KiB
Go
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
|
|
}
|