Database abstraction to simplify review request workflow
Run yarn add @random-guys/pro-vcs
- Less complex code
- Timestamps
- Introduction of transactions for better concurrency guarantees
- Arrange tests
- True data uniqueness by taking
object_state
into consideration - proxy
ModelNotFound
errors frominplace
methods toInconsistentState
error
event.repo
create
- object is in
created
state -
prohub
is notified - DB constraints are held
- object is in
createApproved
- object is in
stable
state
- object is in
assertExists
- throws
DuplicateModelError
only when duplicate exists
- throws
get
- return
frozen
forcreated/updated/deleted
when request is not from owner - return
stable
objects as is - patches objects for
updated
owners
- return
byQuery
- same as
get
- hides
created
objects by default - shows
created
objects onallowNew
- same as
all
- same as
get
- same as
byQuery
- same as
list
- same as
all
- same as
update
- updates
created
objects - updates
updated
objects - returns patched object
- sends patches to
prohub
forcreated
objects - sends patches to
prohub
forupdated
objects - throws
InvalidOperation
fordeleted
objects - create a new update for a
stable
object - send a new event for
stable
objects - throws
InvalidOperation
for objects not owner by user
- updates
delete
- sends close event to
prohub
forcreated
objects - sends close event to
prohub
forupdated
objects - sends close event to
prohub
fordeleted
objects - undo
updated
objects - undo
deleted
objects - deletes
created
events - creates new
deleted
event forstable
objects - throws
InvalidOperation
for objects not owner by user
- sends close event to
merge
- stabilises
created
objects - stabilises
updated
objects with the new data. i.e other users can now see the changes - obliterates
deleted
objects - throws
InvalidOperation
forstable
objects - stabilises
created
with additional updates - stabilises
updated
with additional updates
- stabilises
reject
- cleans up
created
objects - reverts
updated/deleted
objects - throws
InvalidOperation
forstable
objects - reverts
updated
with additional updates
- cleans up
merge.app
-
onApprove
-
onReject
-
onChecks
-