0
Fork 0
mirror of https://github.com/penpot/penpot.git synced 2025-01-23 06:58:58 -05:00

Increase default deletion delay.

This commit is contained in:
Andrey Antukh 2021-02-10 16:48:13 +01:00 committed by Alonso Torres
parent d6f3efb358
commit 2e438385f3
8 changed files with 29 additions and 25 deletions

View file

@ -245,5 +245,5 @@
(def config (read-config env))
(def test-config (read-test-config env))
(def default-deletion-delay
(dt/duration {:hours 48}))
(def deletion-delay
(dt/duration {:days 7}))

View file

@ -52,7 +52,7 @@
;; Schedule deletion of the demo profile
(tasks/submit! conn {:name "delete-profile"
:delay cfg/default-deletion-delay
:delay cfg/deletion-delay
:props {:profile-id id}})
{:email email

View file

@ -129,7 +129,7 @@
;; Schedule object deletion
(tasks/submit! conn {:name "delete-object"
:delay cfg/default-deletion-delay
:delay cfg/deletion-delay
:props {:id id :type :file}})
(mark-file-deleted conn params)))

View file

@ -472,7 +472,7 @@
;; Schedule a complete deletion of profile
(tasks/submit! conn {:name "delete-profile"
:delay (dt/duration {:hours 48})
:delay cfg/deletion-delay
:props {:profile-id profile-id}})
(db/update! conn :profile

View file

@ -16,6 +16,7 @@
[app.rpc.queries.projects :as proj]
[app.tasks :as tasks]
[app.util.services :as sv]
[app.util.time :as dt]
[clojure.spec.alpha :as s]))
;; --- Helpers & Specs
@ -113,8 +114,6 @@
;; --- Mutation: Delete Project
(declare mark-project-deleted)
(s/def ::delete-project
(s/keys :req-un [::id ::profile-id]))
@ -125,18 +124,10 @@
;; Schedule object deletion
(tasks/submit! conn {:name "delete-object"
:delay cfg/default-deletion-delay
:delay cfg/deletion-delay
:props {:id id :type :project}})
(mark-project-deleted conn params)))
(def ^:private sql:mark-project-deleted
"update project
set deleted_at = clock_timestamp()
where id = ?
returning id")
(defn mark-project-deleted
[conn {:keys [id] :as params}]
(db/exec! conn [sql:mark-project-deleted id])
nil)
(db/update! conn :project
{:deleted-at (dt/now)}
{:id id})
nil))

View file

@ -13,6 +13,7 @@
[app.common.exceptions :as ex]
[app.common.spec :as us]
[app.common.uuid :as uuid]
[app.config :as cfg]
[app.db :as db]
[app.emails :as emails]
[app.media :as media]
@ -20,6 +21,7 @@
[app.rpc.queries.profile :as profile]
[app.rpc.queries.teams :as teams]
[app.storage :as sto]
[app.tasks :as tasks]
[app.util.services :as sv]
[app.util.time :as dt]
[clojure.spec.alpha :as s]
@ -133,7 +135,14 @@
(ex/raise :type :validation
:code :only-owner-can-delete-team))
(db/delete! conn :team {:id id})
;; Schedule object deletion
(tasks/submit! conn {:name "delete-object"
:delay cfg/deletion-delay
:props {:id id :type :team}})
(db/update! conn :team
{:deleted-at (dt/now)}
{:id id})
nil)))

View file

@ -7,8 +7,6 @@
;;
;; Copyright (c) 2020 UXBOX Labs SL
;; TODO: session
(ns app.rpc.mutations.verify-token
(:require
[app.common.exceptions :as ex]

View file

@ -42,11 +42,12 @@
(db/with-atomic [conn pool]
(handle-deletion conn props)))
(defmulti handle-deletion (fn [_ props] (:type props)))
(defmulti handle-deletion
(fn [_ props] (:type props)))
(defmethod handle-deletion :default
[_conn {:keys [type]}]
(log/warn "no handler found for" type))
(log/warnf "no handler found for %s" type))
(defmethod handle-deletion :file
[conn {:keys [id] :as props}]
@ -57,3 +58,8 @@
[conn {:keys [id] :as props}]
(let [sql "delete from project where id=? and deleted_at is not null"]
(db/exec-one! conn [sql id])))
(defmethod handle-deletion :team
[conn {:keys [id] :as props}]
(let [sql "delete from team where id=? and deleted_at is not null"]
(db/exec-one! conn [sql id])))