Remove sqlx mapper function; just map all fields manually
This commit is contained in:
parent
720c486715
commit
74db0f5797
@ -7,7 +7,6 @@ import (
|
||||
"path/filepath"
|
||||
|
||||
sql "github.com/jmoiron/sqlx"
|
||||
"github.com/jmoiron/sqlx/reflectx"
|
||||
_ "github.com/mattn/go-sqlite3"
|
||||
|
||||
"gitlab.com/offline-twitter/twitter_offline_engine/pkg/scraper"
|
||||
@ -58,8 +57,6 @@ func NewProfile(target_dir string) (Profile, error) {
|
||||
fmt.Printf("Creating............. %s\n", sqlite_file)
|
||||
db := sql.MustOpen("sqlite3", sqlite_file+"?_foreign_keys=on")
|
||||
db.MustExec(sql_init)
|
||||
InitializeDatabaseVersion(db)
|
||||
db.Mapper = reflectx.NewMapperFunc("db", ToSnakeCase)
|
||||
|
||||
// Create `profile_images`
|
||||
fmt.Printf("Creating............. %s/\n", profile_images_dir)
|
||||
@ -119,7 +116,6 @@ func LoadProfile(profile_dir string) (Profile, error) {
|
||||
}
|
||||
|
||||
db := sql.MustOpen("sqlite3", fmt.Sprintf("%s?_foreign_keys=on&_journal_mode=WAL", sqlite_file))
|
||||
db.Mapper = reflectx.NewMapperFunc("db", ToSnakeCase)
|
||||
|
||||
ret := Profile{
|
||||
ProfileDir: profile_dir,
|
||||
|
@ -103,12 +103,3 @@ func TestLoadProfile(t *testing.T) {
|
||||
|
||||
assert.Equal(t, profile_path, profile.ProfileDir)
|
||||
}
|
||||
|
||||
// Test the ToSnakeCase implementation
|
||||
func TestSnakeCase(t *testing.T) {
|
||||
assert := assert.New(t)
|
||||
|
||||
assert.Equal("tweet_id", persistence.ToSnakeCase("TweetID"))
|
||||
assert.Equal("i_am_a_computer", persistence.ToSnakeCase("IAmAComputer"))
|
||||
assert.Equal("choice1_votes", persistence.ToSnakeCase("Choice1_Votes"))
|
||||
}
|
||||
|
@ -3,8 +3,6 @@ package persistence
|
||||
import (
|
||||
"errors"
|
||||
"os"
|
||||
"regexp"
|
||||
"strings"
|
||||
)
|
||||
|
||||
var ErrNotInDatabase = errors.New("not in database")
|
||||
@ -20,10 +18,3 @@ func file_exists(path string) bool {
|
||||
panic(err)
|
||||
}
|
||||
}
|
||||
|
||||
// https://stackoverflow.com/questions/56616196/how-to-convert-camel-case-string-to-snake-case#56616250
|
||||
func ToSnakeCase(str string) string {
|
||||
snake := regexp.MustCompile("(.)_?([A-Z][a-z]+)").ReplaceAllString(str, "${1}_${2}")
|
||||
snake = regexp.MustCompile("([a-z0-9])_?([A-Z])").ReplaceAllString(snake, "${1}_${2}")
|
||||
return strings.ToLower(snake)
|
||||
}
|
||||
|
@ -12,18 +12,18 @@ type Space struct {
|
||||
State string `db:"state"`
|
||||
Title string `db:"title"`
|
||||
CreatedAt Timestamp `db:"created_at"`
|
||||
StartedAt Timestamp
|
||||
StartedAt Timestamp `db:"started_at"`
|
||||
EndedAt Timestamp `db:"ended_at"`
|
||||
UpdatedAt Timestamp
|
||||
IsAvailableForReplay bool
|
||||
ReplayWatchCount int
|
||||
LiveListenersCount int
|
||||
UpdatedAt Timestamp `db:"updated_at"`
|
||||
IsAvailableForReplay bool `db:"is_available_for_replay"`
|
||||
ReplayWatchCount int `db:"replay_watch_count"`
|
||||
LiveListenersCount int `db:"live_listeners_count"`
|
||||
ParticipantIds []UserID
|
||||
|
||||
CreatedById UserID
|
||||
CreatedById UserID `db:"created_by_id"`
|
||||
TweetID TweetID
|
||||
|
||||
IsDetailsFetched bool
|
||||
IsDetailsFetched bool `db:"is_details_fetched"`
|
||||
}
|
||||
|
||||
func (space Space) FormatDuration() string {
|
||||
|
Loading…
x
Reference in New Issue
Block a user