1
0
go-rss-aggregator/models.go

54 lines
1.1 KiB
Go

package main
import (
"time"
"git.rpuzonas.com/rpuzonas/go-rss-aggregator/internal/database"
)
type User struct {
ID int64 `json:"id"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
Name string `json:"name"`
ApiKey string `json:"api_key"`
}
type Feed struct {
ID int64 `json:"id"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
Name string `json:"name"`
Url string `json:"url"`
UserID int64 `json:"user_id"`
}
func databaseUserToUser(dbUser database.User) User {
return User{
ID: dbUser.ID,
CreatedAt: dbUser.CreatedAt,
UpdatedAt: dbUser.UpdatedAt,
Name: dbUser.Name,
ApiKey: dbUser.ApiKey.String,
}
}
func databaseFeedToFeed(dbFeed database.Feed) Feed {
return Feed{
ID: dbFeed.ID,
CreatedAt: dbFeed.CreatedAt,
UpdatedAt: dbFeed.UpdatedAt,
Name: dbFeed.Name,
Url: dbFeed.Url,
UserID: dbFeed.UserID,
}
}
func databaseFeedsToFeeds(dbFeeds []database.Feed) []Feed {
feeds := make([]Feed, len(dbFeeds))
for i, dbFeed := range dbFeeds {
feeds[i] = databaseFeedToFeed(dbFeed)
}
return feeds
}