Commit Graph

387 Commits

Author SHA1 Message Date
kolaente e9b1786188
Regenerate swagger docs
continuous-integration/drone/push Build was killed Details
2020-09-04 13:15:46 +02:00
kolaente e4dd314079
Add caldav enabled/disabled to /info endpoint
continuous-integration/drone/push Build is failing Details
2020-09-04 09:58:42 +02:00
konrad d359130bcf Switch to mage (#651)
continuous-integration/drone/push Build is failing Details
Add comment about magefile compile

Switch make to mage commands in drone

Fix misspell

Update docs

Add general release command

Add reprepro command

Make sure the filename contains the proper version

Add deb package building

Add zip command

Preserve file permissions when copying files

Fix release:os-package

Make sure to not create checksums of directories

Cleanup

Only compress what upx is able to compress

Add check command

Add release:os-package command

Add copy command

Add comments

Add compress step

Move releasing binaries to a more general function and add ones of linux + darwin

Add release:windows command

Add release:dir command

Add namespaces for commands

Reorder

Add command to run all checks at once

Add goconst-check

Add gosec-check

Add static-check

Add gocyclo-check

Add ineffasign-check

Add misspell-check

Add command to check for swagger docs regeneration

Add comments

Add command to generate swagger docs

Reorder

Add check for installing golint before running it

Add fmt check command

Add fmt command

Use runAndStreamOutput everywhere

Add aliases and comments

Add todo

Reorder

Add test coverage command

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: vikunja/api#651
2020-09-03 15:13:19 +00:00
kolaente fa718e2576
Fix token renew for link shares
continuous-integration/drone/push Build is passing Details
Signed-off-by: kolaente <k@knt.li>
2020-08-18 16:55:44 +02:00
kolaente c517a87b85
Don't add a subtask to the top level of tasks to not add it twice in the list
continuous-integration/drone/push Build is passing Details
2020-08-17 22:30:24 +02:00
kolaente a58b932743
Work around tasks with attachments not being duplicated
continuous-integration/drone/push Build is failing Details
2020-08-16 23:44:16 +02:00
kolaente 301bebf8d3
Only try to download attachments from todoist when there is a url
continuous-integration/drone/push Build is passing Details
Credit: freaktechnik
2020-08-16 23:26:19 +02:00
kolaente d192c36c39
Add better tests for namespaces
continuous-integration/drone/push Build is passing Details
2020-08-15 22:16:36 +02:00
kolaente bdfb804bb2
Fix reading passwords on windows
continuous-integration/drone/push Build is passing Details
2020-08-13 17:59:10 +02:00
konrad 16dbcfda7e Manage users via cli (#632)
continuous-integration/drone/push Build is failing Details
Add users cli commands to docs

Fix checking for changing username or user email

Add user status change command

Make sure only one user exists with a particular email when updating

Add password reset

Add user id to help

Remove user delete (too many possible side effects, postponed until later)

Make sure to fail on any errors

Fail if changing the username would result in duplicate users

Add user update command

Add user create command

Add command stubs for all commands

Render users in a beautiful table

Started adding user list command

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: vikunja/api#632
2020-08-13 15:34:02 +00:00
kolaente 4a70c81b33
Make sure to require admin rights when modifying list/namespace users to be consistent with teams
continuous-integration/drone/push Build is passing Details
Signed-off-by: kolaente <k@knt.li>
2020-08-12 18:20:47 +02:00
konrad bd8c1c3bb7 Return rights when reading a single item (#626)
continuous-integration/drone/push Build is passing Details
Fix lint

Update docs

Fix loading all rights (list & namespace)

Add tests

Update web framework

Make tests run again

Update all calls to CanRead methods

Update task attachment & task comment & task rights to return the max right

Update team rights to return the max right

Update namespace rights to return the max right

Update list rights to return the max right

Update link share rights to return the max right

Update label rights to return the max right

Update web dependency

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: vikunja/api#626
2020-08-10 12:11:43 +00:00
kolaente d718d247c8
Fix users with disabled totp but not enrolled being unable to login
continuous-integration/drone/push Build is passing Details
2020-08-07 16:41:35 +02:00
kolaente 6a82d4e2af
Fix updating team admin status
continuous-integration/drone/push Build is passing Details
2020-08-05 17:28:11 +02:00
kolaente 11722bf029
Add update route to toggle team member admin status
continuous-integration/drone/push Build is failing Details
2020-08-05 17:21:17 +02:00
konrad dfb7730b63 More avatar providers (#622)
continuous-integration/drone/push Build is passing Details
Don't fail if the last avatar file does not exist when deleting it

Fix lint

Remove old global avatar setting and update docs

Generate docs

Invalidate the avatar cache when uploading a new one

Add debug logs

Add caching for upload avatars

Add cache locks

Fix encoding

Resize the uploaded image to a max of 1024 pixels

Remove the old uploaded avatar if one already exists

Add mimetype check for images

Set avatar provider to upload when uploading an avatar

Add upload avatar provider

Make font size smaller to let the initials still look good in smaller sizes

Add debug log

Add cache and resizing of initials avatars

Make font size depend on avatar size

Add drawing initials avatar

Add initials provider

Make the initials avatar provider the default

Add routes

Add user avatar settings handler methods

Add user avatar provider field

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: vikunja/api#622
2020-08-02 17:16:58 +00:00
konrad e4539ef232 Use db sessions for task-related things (#621)
continuous-integration/drone/push Build is passing Details
Use db sessions for task-related things

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: vikunja/api#621
2020-08-01 16:54:38 +00:00
kolaente 41cf73a473
Add option to configure legal urls
continuous-integration/drone/push Build is passing Details
2020-07-18 18:53:56 +02:00
kolaente 9acba7d3f0
Fix duplicating a list with background
continuous-integration/drone/push Build is passing Details
2020-07-17 14:16:59 +02:00
kolaente 2d567bfe0f
Make sure lists which would have a duplicate identifier can still be duplicated
continuous-integration/drone/push Build is passing Details
+ debug logging for duplicating lists
2020-07-17 13:26:49 +02:00
kolaente 092aae3260
Add config option to force ssl connections to connect with the mailer
continuous-integration/drone/push Build is passing Details
2020-07-14 17:30:39 +02:00
konrad 4db06ba9a1 Fix creating lists with non ascii characters (#607)
continuous-integration/drone/push Build is passing Details
Fix test name

Fix migrating lists with non utf-8 characters in their name

Fix creating lists with non utf-8 characters

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: vikunja/api#607
2020-07-07 07:48:12 +00:00
kolaente 78791f31a4
Fix parsing todoist reminder dates
continuous-integration/drone/push Build is passing Details
2020-07-05 20:49:29 +02:00
kolaente ec3fa9300b
Fix parsing todoist reminder dates
continuous-integration/drone/push Build is passing Details
2020-07-05 17:48:36 +02:00
kolaente ae12871bd7
Fix decoding active users from redis
continuous-integration/drone/push Build is passing Details
2020-07-02 23:19:03 +02:00
kolaente 7141050f8b
Make sure the metrics map accesses only happen explicitly
continuous-integration/drone/push Build is passing Details
2020-07-02 21:16:39 +02:00
kolaente f57b7e989f
Fix updating the index when moving a task
continuous-integration/drone/tag Build was killed Details
continuous-integration/drone/push Build is passing Details
2020-07-01 16:54:18 +02:00
kolaente 556ccd68c1
Set the list identifier when creating a new task
continuous-integration/drone/push Build is passing Details
2020-07-01 11:17:18 +02:00
konrad 1181039249 Duplicate Lists (#603)
continuous-integration/drone/push Build is passing Details
Fix buckets not being duplicated correctly

Fix list id param not working

Add api endpoint

Add swagger docs

Add comment about test

Make duplicating actually work

Add copying link shares

Add copying list backgrounds

Add copying task relations

Add copying task comments

Add copying assignees

Add copying task task label relations

Add copying task attachments

Add duplicating tasks

Add basic struct and methods

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: vikunja/api#603
2020-06-30 20:53:14 +00:00
kolaente 9750a23dbe
Make the db timezone migration mysql compatible
continuous-integration/drone/push Build is passing Details
2020-06-30 11:29:47 +02:00
kolaente 1c93aab7e0
Fix not loading timezones on all operating systems
continuous-integration/drone/push Build is passing Details
2020-06-30 09:55:46 +02:00
kolaente 3b2289c8fa
Fix swagger docs
continuous-integration/drone/push Build is passing Details
2020-06-28 16:25:46 +02:00
kolaente 2820d92ab3
Expose namespace id when querying lists
continuous-integration/drone/push Build is passing Details
2020-06-27 23:00:15 +02:00
konrad 08205008e7 Migrate all timestamps to real iso dates (#594)
continuous-integration/drone/push Build is passing Details
Fix query param name

Add option to include null results when filtering

Always set db time to gmt

Fix null filter

Fix timezone setting for todoist parsing

Fix timezone setting for wunderlist parsing

Fix import

Fix caldav reminder parsing

Use timezone from config

Add error and test for invalid filter values

Fix integration tests

Remove task collection date hack

Fix task filter

Fix lint

Fix tests and fixtures for date timezone stuff

Properly set timezone

Change fixtures time zone to gmt

Set db timezone

Set created and updated timestamps for all fixtures

Fix lint

Fix test fixtures

Fix misspell

Fix test fixtures

Partially fix tests

Remove timeutil package

Remove adding _unix suffix hack

Remove _unix suffix

Move all timeutil.TimeStamp to time.Time

Remove all Unix suffixes in field names

Add better error messages when running migrations

Make sure to not migrate 0 unix timestamps to 1970 iso dates

Add migration script for sqlite

Add converting sqlite values

Convert 0 unix timestamps to null in postgres

Convert 0 to null in timestamps

Automatically rename _unix suffix

Add all tables and columns for migration

Fix sql migration query for mysql

Fail with an error if trying to use an unsupported dbms

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: vikunja/api#594
2020-06-27 17:04:01 +00:00
kolaente e17cac854a
Fix removing existing sqlite files
continuous-integration/drone/push Build is failing Details
2020-06-27 16:34:53 +02:00
kolaente 974d028e51
Fix sqlite db not working when creating a new one
continuous-integration/drone/push Build is passing Details
2020-06-26 19:45:19 +02:00
kolaente be11362533
Fix searching for unsplash pictures with words that contain a space
continuous-integration/drone/push Build is passing Details
2020-06-26 00:37:10 +02:00
kolaente 912abb3a10
Fix namespace title not being updated
continuous-integration/drone/push Build encountered an error Details
2020-06-26 00:03:28 +02:00
kolaente 0add1dce01
Add go version to version command
continuous-integration/drone/push Build is passing Details
2020-06-25 15:59:06 +02:00
kolaente c8605d6b3d
Enable upload backgrounds by default
continuous-integration/drone/push Build is failing Details
2020-06-23 22:53:23 +02:00
kolaente caee123f9d
Add better errors if the sqlite db file is not writable
continuous-integration/drone/push Build is passing Details
2020-06-23 11:21:42 +02:00
kolaente 150c3f032c
Prevent crashing when trying to register with an empty payload
continuous-integration/drone/push Build is passing Details
2020-06-21 20:54:46 +02:00
konrad e4f150bbe3 Restore command (#593)
continuous-integration/drone/push Build is failing Details
Add waiting for changes to config file

Add max size for config files

Restore files

Restore database file

Expose migrate to

Move init stuff to seperate package

Add restoring config file

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: vikunja/api#593
2020-06-21 15:30:48 +00:00
kolaente db0126968a
Improve memory usage of dump by not loading all files in memory prior to adding them to the zip
continuous-integration/drone/push Build is passing Details
2020-06-20 11:48:45 +02:00
kolaente c12bac0c96
Return errors when dumping
continuous-integration/drone/push Build is failing Details
2020-06-20 11:37:51 +02:00
konrad fba333866d Add dump command (#592)
continuous-integration/drone/push Build is passing Details
Fix files location in dump

Fix gitignore

Add docs

Add dumps to gitignore

Move dump to seperate package

logging

Dump files

Dump version

Dump database

Dump config

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: vikunja/api#592
2020-06-19 21:29:02 +00:00
konrad d02d413c5e Sentry integration (#591)
continuous-integration/drone/push Build is passing Details
Use sentry echo integration to send errors

Only capture errors not already handled by echo

Add sentry panic handler

Add sentry library

Add sentry init

Add sentry config

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: vikunja/api#591
2020-06-19 18:47:15 +00:00
kolaente 021e3e307b
Remove build date from binary
continuous-integration/drone/push Build is passing Details
2020-06-18 19:26:53 +02:00
kolaente 525a547500
Remove min length for labels, lists, namespaces, tasks and teams
continuous-integration/drone/push Build is failing Details
2020-06-17 18:52:23 +02:00
kolaente ca4d5000ed
Add list background information when getting all lists
continuous-integration/drone/push Build is passing Details
2020-06-16 18:57:08 +02:00
kolaente 24c1098736
Fix resetting list, label & namespace colors
continuous-integration/drone/push Build is passing Details
2020-06-15 11:32:07 +02:00
konrad 47d7e713af Repeat tasks after completion (#587)
continuous-integration/drone/push Build is passing Details
Fix integration tests

Add updating start and end date from current date

Add updating reminders from current date

Add updating reminders from current date

Add updating due date from current date

Add updating flag

Add tests

Add field to repeat a task after current date

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: vikunja/api#587
2020-06-14 11:04:38 +00:00
konrad ab1d58959f Ensure task dates are in the future if a task has a repeating interval (#586)
continuous-integration/drone/push Build is passing Details
Ensure task dates are in the future if a task has a repeating interval

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: vikunja/api#586
2020-06-13 21:32:31 +00:00
kolaente f5e44d9eb3
Reorganize cmd init functions
continuous-integration/drone/push Build is passing Details
2020-06-13 19:44:45 +02:00
kolaente d9d00ba60c
Fix migration 20200516123847
continuous-integration/drone/push Build is passing Details
2020-06-13 19:33:48 +02:00
kolaente a15b1bebba
Fix migration 20200425182634
continuous-integration/drone/push Build is passing Details
2020-06-13 19:27:12 +02:00
konrad a0ffe89056 List Background upload (#582)
continuous-integration/drone/push Build is passing Details
Add filesize check when uploading a new file

Fix error 500 if the uploaded background was not an unsplash one

Add upload background setting to info endpoint

Add config docs

Fix lint

Return list background type if it was uploaded

Add file upload

Add docs

Save uploaded backgrounds as file

Add background upload handler

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: vikunja/api#582
2020-06-11 17:31:37 +00:00
kolaente 32a5dff78d
Fix migration to add position to task
continuous-integration/drone/push Build is passing Details
Signed-off-by: kolaente <k@knt.li>
2020-06-07 18:28:49 +02:00
kolaente d63666cece
Fix getting unsplash thumbnails for non "photo-*" urls
continuous-integration/drone/push Build is passing Details
2020-05-31 22:40:27 +02:00
kolaente d8a6acda96
Fix proxying unsplash images (security) 2020-05-31 22:36:25 +02:00
kolaente 03ef48a0ae
Properly ping unsplash when using unsplash images
continuous-integration/drone/push Build is failing Details
2020-05-31 22:06:59 +02:00
kolaente 8f35b9d579
Set unsplash empty collection caching to one hour
continuous-integration/drone/push Build is passing Details
2020-05-31 20:50:51 +02:00
kolaente ebfa982c72
Fix misspell
continuous-integration/drone/push Build is passing Details
2020-05-31 18:12:32 +02:00
kolaente 2fa4fcc202
Fix caching of initial unsplash results per page
continuous-integration/drone/push Build is failing Details
2020-05-31 18:09:46 +02:00
kolaente ad67154e26
Add cache for initial unsplash collection
continuous-integration/drone/push Build is failing Details
2020-05-31 17:59:39 +02:00
kolaente 250c45d1b9
Remove migration dependency to models
continuous-integration/drone/push Build is passing Details
2020-05-30 17:09:35 +02:00
kolaente a525787ab7
Update and fix staticcheck
continuous-integration/drone/push Build is passing Details
2020-05-29 22:15:21 +02:00
kolaente aae1bc3cab
Load the list when setting a background
continuous-integration/drone/push Build is passing Details
2020-05-29 22:12:16 +02:00
kolaente 42ddee8d6f
Add logging if downloading an image from unsplash fails 2020-05-29 22:11:49 +02:00
kolaente 5a04f1ecf4
Add option to disable totp for everyone
continuous-integration/drone/push Build is passing Details
2020-05-29 17:15:59 +02:00
kolaente a0fb8bd32d
Add unsplash image proxy for images and thumbnails
continuous-integration/drone/push Build is failing Details
2020-05-29 15:33:46 +02:00
konrad c685250c96 Add test mail command (#571)
continuous-integration/drone/push Build is failing Details
Add test mail command

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: vikunja/api#571
2020-05-29 13:10:06 +00:00
kolaente 2ef2c7523d
Also return unsplash info when searching
continuous-integration/drone/push Build is passing Details
2020-05-27 22:12:12 +02:00
konrad e5e30d0915 List Backgrounds (#568)
continuous-integration/drone/push Build is failing Details
Return the updated list when setting a list background

Add swagger docs for unsplash methods

Add unsplash info to search results

Fix misspell

Fix lint

Add rights check for setting and getting backgrounds

Show unsplash information when loading a single list

Make application id for pingbacks configurable

Remove old backgrounds when setting a new one

Return 404 if the list does not have a background

Implement getting list backgrounds

Implement actually setting a photo from unsplash as list background

go mod tidy

Add migration for background file id

Roughly implement setting a list background from unsplash

Implement saving a background

Add migration for unsplash photo table

Add unsplash search

Fix parsing page param

Fix parsing page param

Fix background config

Add unsplash wrapper library

Add enabled background providers to info endpoint

Add config options for backgrounds

Add unsplash background provider

Add routing handler for backgrounds

Add basic background provider interface

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: vikunja/api#568
2020-05-26 20:07:55 +00:00
kolaente e9bc3246ce
Add todoist migrator to available migrators in info endpoint if it is enabled
continuous-integration/drone/push Build is failing Details
2020-05-24 12:51:38 +02:00
konrad e89e6d47d4 Todoist Migration (#566)
continuous-integration/drone/push Build is passing Details
Add swagger docs + fix lint

Add parsing logic + fix fixtures

Fix test init

Add logging to creating labels and debug logs

Add creating labels when migrating

Finish test fixtures

Started adding fixtures for testing

Add method and test structures to convert todoist to vikunja

Add basic structure to migrate everything

Add all structs for todoist api

Add docs for config options

Add routes for todoist migrator

Add api token exchange

Add basic structure for todoist migration

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: vikunja/api#566
2020-05-23 20:50:54 +00:00
kolaente f0b1de5ec6
Use the db logger instance for logging migration related stuff
continuous-integration/drone/push Build is passing Details
2020-05-23 18:33:11 +02:00
kolaente 98ef052967
Don't return all tasks when a user has no lists 2020-05-19 17:22:10 +02:00
kolaente 8a01b20e1e
Fix setting a list identifier to empty
continuous-integration/drone/push Build is passing Details
2020-05-16 13:13:11 +02:00
kolaente 5a86f44fc3
Generate a random list identifier based on the list title
continuous-integration/drone/push Build is passing Details
2020-05-16 12:58:37 +02:00
konrad fe43173b6c Ensure consistent naming of title fields (#528)
continuous-integration/drone/push Build is passing Details
Remove task text and namespace name in migration

Fix lint

Add migration for namespace title

Fix renaming namespace name to title

Rename namespace name field to title

Drop text column at the end of the migration

Add migration for task text to title

Rename task text to title

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: vikunja/api#528
2020-05-16 10:17:44 +00:00
konrad 587ce92dc9 Improve getting all namespaces performance (#526)
continuous-integration/drone/push Build is passing Details
Improve getting all namespaces performance

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: vikunja/api#526
2020-05-15 15:10:22 +00:00
konrad 8758fb6ac5 Fix case-insensitive task search for postgresql (#524)
continuous-integration/drone/push Build is passing Details
"Fix" gocyclo

Fix case-insensitive task search for postgresql

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: vikunja/api#524
2020-05-15 14:12:20 +00:00
kolaente 92e5e2db6a
Make the _unix suffix optional when sorting tasks
continuous-integration/drone/push Build is passing Details
2020-05-15 16:07:36 +02:00
kolaente 333444b4e1
Improve metrics performance
continuous-integration/drone/push Build is failing Details
2020-05-15 14:42:32 +02:00
kolaente 4137d4aed2
Fix creating new things with a link share auth
continuous-integration/drone/push Build is passing Details
2020-05-12 15:51:48 +02:00
kolaente 55cd40d175
Fix team rights not updating for namespace rights
continuous-integration/drone/push Build is passing Details
2020-05-11 18:39:30 +02:00
konrad 8ac158cdb4 Task Filter Fixes (#495)
continuous-integration/drone/push Build is passing Details
Fix gocyclo

Fix misspell

Error codes docs

Filter fixes

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: vikunja/api#495
2020-05-09 15:48:56 +00:00
kolaente 18f6e31b54
Fix parsing array style comparators by query param
continuous-integration/drone/push Build is failing Details
2020-05-09 15:08:58 +02:00
kolaente 7e1d0a81bf
Change totp secret datatype from varchar to text
continuous-integration/drone/push Build was killed Details
2020-05-09 14:45:57 +02:00
kolaente 563fe16bd4
Add checking and logging when trying to put a task into a nonexisting bucket
continuous-integration/drone/push Build is passing Details
2020-05-07 10:20:10 +02:00
konrad fd3ccd6130 Fix total label count when getting all labels (#477)
continuous-integration/drone/push Build is passing Details
Fix total label count when getting all labels

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: vikunja/api#477
2020-05-03 21:28:36 +00:00
kolaente a97ce76f1f
Fix bucket ID being reset with no need to do so
continuous-integration/drone/push Build is passing Details
2020-05-03 22:25:48 +02:00
kolaente 83cf6e191c
Fix not moving its bucket when moving a task between lists
continuous-integration/drone/push Build is failing Details
2020-05-03 21:33:59 +02:00
kolaente f0ac6e89be
Remove setting task bucket to 0
continuous-integration/drone/push Build is passing Details
2020-05-03 21:24:28 +02:00
kolaente fa28ddc2f7
Fix pagination count for task collection
continuous-integration/drone/push Build is passing Details
2020-04-27 19:28:19 +02:00
kolaente 56dbb564ea
Fix link share creation & creating admin link shares without admin rights
continuous-integration/drone/push Build is passing Details
2020-04-27 12:51:09 +02:00
kolaente 5606f987fa
Add creating a new first bucket when creating a new list
continuous-integration/drone/push Build is passing Details
2020-04-26 15:51:59 +02:00
kolaente f0cb3b5e36
Fix removing the last bucket
continuous-integration/drone/push Build is passing Details
2020-04-26 00:57:47 +02:00
konrad 231dc3913f Add real buckets for tasks which don't have one (#446)
continuous-integration/drone/push Build is passing Details
Add docs for error code

Add moving new tasks into the default bucket when none was provided

Add moving tasks in default bucket when deleting one

Fix tests again

Add test for removing a bucket

Fix tests

Prevent removing the last bucket

Remove the empty pseudo bucket

Add migration to create a new bucket for each list (and put all tasks in it

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: vikunja/api#446
2020-04-25 20:32:02 +00:00
konrad e433289832 Task Position (#412)
continuous-integration/drone/push Build is passing Details
Fix misspell

Fix sorting tasks with null values

Fix sorting by priority for postgres

Merge branch 'master' into feature/position

Add community link

Update golang.org/x/crypto commit hash to 44a6062 (#429)

Update golang.org/x/crypto commit hash to 44a6062

Reviewed-on: vikunja/api#429

Update module lib/pq to v1.4.0 (#428)

Update module lib/pq to v1.4.0

Reviewed-on: vikunja/api#428

Fix updating position

Add ordering tasks in buckets by position

Make task sort by string

Merge branch 'master' into feature/position

Update golang.org/x/crypto commit hash to 3c4aac8 (#419)

Update golang.org/x/crypto commit hash to 3c4aac8

Reviewed-on: vikunja/api#419

Merge branch 'master' into feature/position

Fix moving tasks back into the empty (ID: 0) bucket

Add adding a default position when creating new tasks

Update golang.org/x/crypto commit hash to a76a400 (#411)

Update golang.org/x/crypto commit hash to a76a400

Reviewed-on: vikunja/api#411

Remove unused code

Fix tests

Add migration for position attribute

Add position attribute

Co-authored-by: kolaente <k@knt.li>
Co-authored-by: renovate <renovatebot@kolaente.de>
Reviewed-on: vikunja/api#412
2020-04-24 15:23:03 +00:00
kolaente 68ab6d2e75
Fix moving tasks back into the empty (ID: 0) bucket
continuous-integration/drone/push Build is passing Details
2020-04-20 23:08:38 +02:00
kolaente 59037e4eee
Fix moving tasks in buckets
continuous-integration/drone/push Build is passing Details
2020-04-20 18:08:20 +02:00
konrad ecdecdd94e Kanban (#393)
continuous-integration/drone/push Build is passing Details
Fix tests

Add error docs

Add swagger docs for bucket endpoints

Add integration tests

Fix tests

Fix err shadow

Make sure a bucket and a task belong to the same list when adding or updating a task

Add tests

Add getting users of a bucket

Fix log level when testing

Fix lint

Add migration for buckets

Cleanup/Comments/Reorganization

Add Kanban bucket handling

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: vikunja/api#393
2020-04-19 07:27:28 +00:00
konrad 28ec44c91f Add moving tasks between lists (#389)
continuous-integration/drone/push Build is passing Details
Fix misspell

Add moving tasks between lists

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: vikunja/api#389
2020-04-18 12:35:37 +00:00
kolaente 895d9613b5
Add endpoint to disable totp auth
continuous-integration/drone/push Build is passing Details
2020-04-18 01:38:49 +02:00
kolaente 87d0c9088d
Add endpoint to get the current users totp status
continuous-integration/drone/push Build is passing Details
2020-04-18 00:22:59 +02:00
konrad 24904585a2 Add 2fa for authentification (#383)
continuous-integration/drone/push Build is passing Details
Fix user tests

Add swagger docs

Fix lint

Add totp check when logging in

Make totp enrollment work

Add migration for totp table

go mod vendor

Add routes for totp routes

Add route handler for totp routes

Add basic implementation to enroll a user in totp

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: vikunja/api#383
2020-04-17 19:25:35 +00:00
kolaente 1dca8e96a7
Add changing email for users
continuous-integration/drone/push Build is passing Details
2020-04-17 16:01:45 +02:00
kolaente 5832991c4d
Fix tests after renaming json fields to snake_case
continuous-integration/drone/push Build is failing Details
2020-04-13 23:27:55 +02:00
kolaente 81990f3f80
Update xorm redis cacher to use the xorm logger instead of a special seperate one
continuous-integration/drone/push Build is failing Details
2020-04-13 23:18:33 +02:00
kolaente b8d7c97eb7
Add gosec static analysis
continuous-integration/drone/push Build is failing Details
2020-04-13 22:30:09 +02:00
kolaente fb8ac92abf
Change all json fields to snake_case
continuous-integration/drone/push Build is failing Details
2020-04-12 22:48:46 +02:00
kolaente 0bfb3a4709
Add configuration options for log level
continuous-integration/drone/push Build is failing Details
2020-04-12 22:32:21 +02:00
konrad d28f005552 Update xorm to v1 (#323)
continuous-integration/drone/push Build is failing Details
Fix limit for databases other than sqlite

go mod tidy && go mod vendor

Remove unneeded break statements

Make everything work with the new xorm version

Fix xorm logging

Fix lint

Fix redis init

Fix using id field

Fix database init for testing

Change default database log level

Add xorm logger

Use const for postgres

go mod tidy

Merge branch 'master' into update/xorm

# Conflicts:
#	go.mod
#	go.sum
#	vendor/modules.txt

go mod vendor

Fix loading fixtures for postgres

Go mod vendor1

Update xorm to version 1

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: vikunja/api#323
2020-04-12 17:29:24 +00:00
konrad 0ba121fdfb Task filters (#243)
continuous-integration/drone/push Build is passing Details
Fix not returning errors

Fix integration tests

Add more tests

Make task filtering actually work

Change tests

Fix using filter conditions

Fix test

Remove unused fields

Fix static check

Remove start and end date fields on task collection

Fix misspell

add filter logic when getting tasks

Add parsing filter query parameters into task filters

Start adding support for filters

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: vikunja/api#243
2020-04-11 14:20:33 +00:00
kolaente e7706a20dd
Fix call to println
continuous-integration/drone/push Build is passing Details
Signed-off-by: kolaente <k@knt.li>
2020-04-02 21:38:16 +02:00
kolaente 6d1018e647
Fix searching for config in home directories
continuous-integration/drone/push Build is failing Details
Signed-off-by: kolaente <k@knt.li>
2020-04-02 21:13:42 +02:00
kolaente 11246b948f
Fix getting the authenticated user with caldav
continuous-integration/drone/push Build is passing Details
Signed-off-by: kolaente <k@knt.li>
2020-04-01 22:51:57 +02:00
konrad 7b619bd084 Colors for lists and namespaces (#155)
continuous-integration/drone/push Build is passing Details
Add Hex Color properties migration

Add Hex Color properties

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: vikunja/api#155
2020-03-22 21:09:32 +00:00
kolaente 35f05cbbec
Show lists as archived if their namespace is archived
continuous-integration/drone/push Build is passing Details
Signed-off-by: kolaente <k@knt.li>
2020-03-22 21:39:57 +01:00
kolaente 0a1887d6e7
Fix archiving namespaces
continuous-integration/drone/push Build is passing Details
Signed-off-by: kolaente <k@knt.li>
2020-03-22 19:02:53 +01:00
kolaente c6d22bb1f8
Fix updating lists with an identifier
continuous-integration/drone/push Build is passing Details
Signed-off-by: kolaente <k@knt.li>
2020-03-22 18:45:10 +01:00
kolaente 6132863f4a
Fix getting archived lists and namespaces
continuous-integration/drone/push Build is passing Details
Signed-off-by: kolaente <k@knt.li>
2020-03-22 18:24:54 +01:00
kolaente 26ffd2fd22
Fix getting one namespace
continuous-integration/drone/push Build is passing Details
Signed-off-by: kolaente <k@knt.li>
2020-03-21 13:55:42 +01:00
funkythings 51c74de1de expand relative path ~/.config/vikunja to $HOME/.config/vikunja **WINDOWS** (#147)
continuous-integration/drone/push Build is passing Details
apply correct formatting

add quotes to make the yaml gods happy

log path of config file used by viper

resolve merge conflicts: windows compatible $HOME path

Prepare changelog & readme for 0.11 release

expand relative path ~/.config/vikunja to $HOME/.config/vikunja (#146)

update dependencies

expand relative path ~/.config/vikunja

Co-authored-by: Julian <juliangaal@protonmail.com>
Co-authored-by: konrad <konrad@kola-entertainments.de>

Co-authored-by: Julian Gaal <gjulian@uos.de>
Reviewed-on: vikunja/api#147
Reviewed-by: konrad <konrad@kola-entertainments.de>
2020-03-20 21:21:44 +00:00
konrad 5126330a10 Add support for archiving lists and namespaces (#152)
continuous-integration/drone/push Build is passing Details
Add query param to get all lists including archived ones

Add query param to get all namespaces including archived ones

Fix getting lists by namespace only not archived lists

Fix misspell

Fix lint

Merge branch 'master' into feature/archive-lists-namespaces

Add docs for error codes

Fix archive error codes

Don't let archived lists show up in general lists

Fix updating description

Fix updating lists with link shares

More comments

Fix un-archiving lists

Move check for archiving a list to canWrite Check

Add more tests

Add more checks

Add checks for namespaces and lists

Add namespace edit

Add tests

Add migrations and filter

Add basic tests

Add is archived property to lists and namespaces

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: vikunja/api#152
2020-03-15 21:50:39 +00:00
konrad 4472020ee9 Add workaround for timezones on windows (#151)
continuous-integration/drone/push Build is passing Details
Add workaround for timezones on windows

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: vikunja/api#151
2020-03-09 22:41:08 +00:00
kolaente 7de26a462f
Add build time to compile flags
continuous-integration/drone/push Build is passing Details
2020-03-02 20:24:26 +01:00
konrad cdd068cdb6 Add empty avatar provider (#149)
continuous-integration/drone/push Build is passing Details
Fix lint

Add docs for avatar configuration

Add default avatar provider

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: vikunja/api#149
2020-03-01 21:10:25 +00:00
konrad 584e3af237 Add proxying gravatar requests for user avatars (#148)
continuous-integration/drone/push Build is passing Details
Fix getting avatar based on email

Remove avatarUrl from user struct

Fix staticcheck

Add default avatar size

Add config option for caching avatars

go mod vendor

Add swagger docs

Add proxying gravatar requests for user avatars

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: vikunja/api#148
2020-03-01 20:30:37 +00:00
funkythings 1e03c39141 expand relative path ~/.config/vikunja to $HOME/.config/vikunja (#146)
continuous-integration/drone/push Build is passing Details
update dependencies

expand relative path ~/.config/vikunja

Authored-by: Julian Gaal <gjulian@uos.de>
Reviewed-on: vikunja/api#146
Reviewed-by: konrad <konrad@kola-entertainments.de>
2020-02-29 19:51:47 +00:00
konrad 88bf8f3df0 Fix updating dates when marking a task as done (#145)
continuous-integration/drone/push Build is passing Details
Fix lint

Fix reminders not being updated

Fix updating dates when marking a task as done

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: vikunja/api#145
2020-02-26 21:09:45 +00:00
kolaente c551706b52
Make sure the author is returned when creating a new comment
continuous-integration/drone/push Build is passing Details
2020-02-25 21:18:42 +01:00
konrad 1f039c4cda Task Comments (#138)
continuous-integration/drone/push Build is passing Details
Add swagger docs

Add integration tests

Add tests

Add task comment test fixtures

Add config option to enable/disable task comments

Add custom error if a task comment does not exist

Fix lint

Add getting author when getting a single comment

Fix getting comments/comments author

Add rights check to ReadAll

+ actually get the comment author

Add migration and table definitions

Add routes

Add ReadOne method

Add basic crud rights

Signed-off-by: kolaente <k@knt.li>

Implement basic crudable functions for task comments

Signed-off-by: kolaente <k@knt.li>

Start adding task comments

Signed-off-by: kolaente <k@knt.li>
Co-authored-by: kolaente <k@knt.li>
Reviewed-on: vikunja/api#138
2020-02-19 21:57:56 +00:00
konrad 5901cf64b4 Fix inserting task structure with related tasks (#142)
continuous-integration/drone/push Build is passing Details
Fix typo

Fix creating related tasks

Add better logging

Fix inserting task structure with related tasks

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: vikunja/api#142
2020-02-18 22:00:54 +00:00
konrad e95a6eeb11 Explicitly disable wunderlist migration by default (#141)
continuous-integration/drone/push Build is passing Details
Fix wunderlist callback link in docs

Explicitly disable wunderlist migration by default

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: vikunja/api#141
2020-02-17 17:29:17 +00:00
jtojnar ce5be947b4 Add postgres support (#135)
continuous-integration/drone/push Build is passing Details
Revert fixture fixes for postgres

Use postgres connection string with spaces instead of url

Fix label order

Make postgres tests in ci less verbose

Add sequence update script

Skip resets in postgres

Remove option to skip resets in postgres

Make postgres tests in ci verboseq

Update test fixtures database

Fix file tests on postgres

Add postgres options to sample config

Make sure tests init test fixtures before running the actual tests

Fix issues with IDs too big to fit in an int

Fix duplicate auto incremented IDs

Refactor / Fix team tests

Refactor team member tests

Fix team member create

Fix label test

Fix getting labels

Fix test fixtures for postgresql

Fix connection string params

Disable ssl mode on postgres integration tests

Disable ssl mode on postgres tests

Use sprintf to create the connection string for postgresql

fixup! Add postgres support

Add postgres support

Added generate as a make dependency for make build

Clarify docs on building

Co-authored-by: kolaente <k@knt.li>
Co-authored-by: Jan Tojnar <jtojnar@gmail.com>
Reviewed-on: vikunja/api#135
2020-02-16 21:42:04 +00:00
konrad caf91d1904 Update xorm to use the new import path (#133)
continuous-integration/drone/push Build is passing Details
Fix ineffassign

Fix getting all labels including the ones not associated to a task

Signed-off-by: kolaente <k@knt.li>

Fix logging sql queries

Signed-off-by: kolaente <k@knt.li>

Start fixing getting all labels

Update xormigrate

Update xorm to use the new import path

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: vikunja/api#133
2020-02-14 16:34:25 +00:00
kolaente d84a160054
Remove double user field
continuous-integration/drone/push Build is passing Details
2020-02-08 22:12:06 +01:00
konrad db2d868eed Return iso dates for everything date related from the api (#130)
continuous-integration/drone/push Build is passing Details
Remove traces of unix timestamp

Revert renaming reminder table column

Fix staticcheck

Remove unused table call

Add migration for renaming reminders table

Fix issues with using TimeStamp

Fix lint

Updated all created / updated fields to use TimeStamps

Add comments

Convert all created / updated fields to datetime

Add time util package

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: vikunja/api#130
2020-02-08 12:48:49 +00:00
kolaente 1f99238019
Update copyright header
continuous-integration/drone/push Build is passing Details
2020-02-07 17:27:45 +01:00
konrad f603b41d99 Better efficency for loading teams (#128)
continuous-integration/drone/push Build is passing Details
Fix staticcheck

Better performance for getting teams on a namespace

Better performance for getting teams on a list

Fix lint

Fix swagger

Signed-off-by: kolaente <k@knt.li>

Make loading a single full team more efficent

Signed-off-by: kolaente <k@knt.li>

Make loading teams more efficent

Signed-off-by: kolaente <k@knt.li>

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: vikunja/api#128
2020-01-27 17:28:17 +00:00
konrad 2abb858859 Add rate limit by ip for non-authenticated routes (#127)
continuous-integration/drone/push Build is passing Details
Add rate limit by ip for non-authenticated routes

Signed-off-by: kolaente <k@knt.li>

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: vikunja/api#127
2020-01-26 19:53:47 +00:00
konrad fc65052ba0 Add config options for task attachments (#125)
continuous-integration/drone/push Build was killed Details
Add config options for task attachments

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: vikunja/api#125
2020-01-26 19:10:31 +00:00
konrad b2b1546a8f Add config options for cors handling (#124)
continuous-integration/drone/push Build was killed Details
Add config options for cors handling

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: vikunja/api#124
2020-01-26 19:09:54 +00:00
konrad 7e9446ea07 Refactor User and DB handling (#123)
continuous-integration/drone/push Build is passing Details
fix copyright date

Add more user tests

More user tests

More user tests

Start refactoring user tests

Docs

Fix lint

Fix db fixtures init in tests

Fix models test

Fix loading fixtures

Fix ineffasign

Fix lint

Fix integration tests

Fix init of test engine creation

Fix user related tests

Better handling of creating test enging

Moved all fixtures to db package

Moved all fixtures to db package

Moved user related stuff to seperate package

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: vikunja/api#123
2020-01-26 17:08:06 +00:00
konrad 8c33e24e92 Migration Improvements (#122)
continuous-integration/drone/push Build is passing Details
Update swagger docs

Update docs

Let the wunderlist migrator use the registerRoutes function

Add migration status table

Add migration status

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: vikunja/api#122
2020-01-20 19:48:46 +00:00
konrad 3081338a37 Use redis INCRBY and DECRBY when updating metrics values (#121)
continuous-integration/drone/push Build is passing Details
Move test coverage processing to a seperate command

Use redis INCRBY and DECRBY when updating metrics values

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: vikunja/api#121
2020-01-19 17:26:26 +00:00
konrad 9e39399689 Migration (#120)
Go mod tidy

[skip ci] Add modules/migration to docs

[skip ci] update date

fmt

Merge branch 'master' into feature/migration

# Conflicts:
#	pkg/routes/api/v1/info.go

Add docs on how to create a migrator

Add available migrators to /info endpoint

Return a message once everything was migrated successfully

Add swagger docs for wunderlist migration

Docs for migration [skip ci]

Fix due date fixture in migration test

Fix staticcheck

Fix lint

Logging and cleanup

Make the migrator work with real data

Add routes for migration

Fix misspell

Add method to store a full vikunja structure into vikunja

Add getting all data from wunderlist

Add attachment migration from wunderlist

Add done and done at to wunderlist migrator

Add todo

Add wunderlist auth url implementation

Fix lint

Finish wunderlist migration

Added all structs for the wunderlist migratior

Fix owner field being null for user shared namespaces (#119)

Update copyright year (#118)

Add option to disable registration (#117)

Added migrator interface

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: vikunja/api#120
2020-01-19 16:52:16 +00:00