* feat: new migration system
* use newFuncMigration
* database version -> database schema version
* column name
* use path instead of filepath for goembed
* simplified migrations, added backwards compatible migrations
* return corrent path in windows with usiing path lib
* ci: run tests in windows and macos too
* avoid testing mysql/psql in windows and macos
* windows & macos matrix
* disable gotestfmt
* replace which in shell script
* handle error in test db removal
* fix expected path baseed on platform
* add leading seprator
* proper temporary storage dir and db cleanup
* fix failed to create destination dir file does not exist in windows
* move temp to /tmp
* update temp folder
* fix config tests in windows
* apply patch for db
* revert temp dir creation.
* unify account db tests pach
* remove TmpDir for sqlite tests
* try to force CGO disable with enviroment variable
* Remove unneeded log
Co-authored-by: Felipe Martin <812088+fmartingr@users.noreply.github.com>
* remove unneeded comment
Co-authored-by: Felipe Martin <812088+fmartingr@users.noreply.github.com>
* fix file path for download images
* change way to create temp directory
* use diffrent file name for each test
* fix typo
* fix absolute path in successful download image
* correct filename with png
* change test to download image from internet instead of local machine
* remvoe unneeded import
* remove os.RemoveAll(.env)
* unify variable names in unit test
* return CGO_ENABLED=0
* test other way to set enviroment variable
* try to set enviroment variable sepratly in macos and windows
* set enviroment variable before run commands in windows
* fix windows test name
* combine two workflow for windows and macos again
* fix typo
* remove env
* change env path
* cleanup unneeded env
* general CGO_ENABLED environ
* use absolute path to run fileserver instead of relative
* serve file test from internet shiori repository
* check file existance after download and unify varibale name from temp to tmpDir
* remove unneeded log
---------
Co-authored-by: Felipe M <me@fmartingr.com>
Co-authored-by: Felipe Martin <812088+fmartingr@users.noreply.github.com>
* create needed field in sqlite database
* update account model
* update Account struct for save Account options
* update sqlite database return account settings
* save configure in sqlite as text and return that
* read configure from user account and defualt configure for shiori
* add api/ui for update settings in database user can save settings in database (in sqlite database)
* check configures be in json format before save in database
* support MariaDB
* fix wrong comment
* support PostgreSQL
* revert unneeded change in new logic
* change configures to config
* change SaveAccount to SaveAccountSettings
* add migrate database scripts
* change default in migration scrtipts
* update model
* read config field as json from database
* fix parse value config value & update config update
* update default value for new user
* update settings variable name to reflect database value in UI
* fix typo
* not panic if user not exist and update worng comment
* visitor user can update there settings now
* remove unneeded loading dialog
* fix typo
* update function for pg and mysql
* remove IsJson
* move scan method to model
* simplify jsonify
* simplify assignees value to account.Config
* missing part of function
* fix some typo and unneeded field in struct
* add down migrate script for all database
* change createEbook to CreateEbook
* use json instead of text in mysql and postgres
* implement
* remove unneeded part
* remove unneeded jsonify in code
* return SelectContext and GetContext
* remove defualt config in reques for new user it will be set in backend
* New API
* remove legacy API
* remove validateSessionWithoutOwnerStatus
* remove Jsonify function don't need that anymore
* add unit test for database
* update migrate script name
* change put to patch
* return PUT
* fix Patch problem and now use PATCH instead of PUT
* remove unneeded retuen
* more cleaner code for request new settings
* fix bug to handle string in Scan method thanks to fmartingr
* fix Authorization & use GetAccount & remove username from request
* shiori-settings remove and it read from shiori-account
* add swagger documentation
* API unit test
* fix typo
* remove unneeded coment
Co-authored-by: Felipe Martin <812088+fmartingr@users.noreply.github.com>
* better Documentation
Co-authored-by: Felipe Martin <812088+fmartingr@users.noreply.github.com>
* shiori-toke remove on logout
* fix typo
* add unit test check update config in database
* update swag documentation
* fix swag formaing error
---------
Co-authored-by: Felipe Martin <812088+fmartingr@users.noreply.github.com>
* chore: updated go-migrate dependencies
* fix: specify if we're saving bookmarks expecting a creation
up until now the SaveBookmarks method was doing some "magic" to do
"upserts" on the databases, but consistency between engines was scarce
and not knowing if we were expecting saving a new bookmark or updating
an existing one was leading to errors and inconsistencies in logic all
around the place. Now we need to specify a creation boolean when
saving and a differnt query will be make (INSERT vs UPDATE).
* fix(api): using incorrect bookmark for content downlaod
* test(db): added test pipeline for databases
Added functions that will share logic among the engines and will be
called on fresh databases on each test run
* dev: added basic docker-compose for development
* chore: uncommented tests
* ci(test): added mysql service
* typo
* test(mysql): select database after reset
* fix(mysql): ignore empty row errors when parsing tags
* fix(mysql): handle insert errors
* chore: added mysql variables to compose
* ci: explicit mysql service port exposed
* fix(psql): get last inserted id from insert query
book.ID was not being used, so inserts were failing.
the check for book.ID was removed and it is filled with the returning
id from the insert query
* test(psql): added save bookmarks simple test
* ci: added postgresql service
* fix(typo): QueryRow -> QueryRowContext
* ci: explicit postgresql port
* ci(test): 1.19 only
* ci: bind psql to localhost
* test(pg): migrate before test
* test(pg): migrate database before test
* fix(pg): check no rows error on get query