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_stateinto consideration - proxy
ModelNotFounderrors frominplacemethods toInconsistentStateerror
event.repocreate- object is in
createdstate -
prohubis notified - DB constraints are held
- object is in
createApproved- object is in
stablestate
- object is in
assertExists- throws
DuplicateModelErroronly when duplicate exists
- throws
get- return
frozenforcreated/updated/deletedwhen request is not from owner - return
stableobjects as is - patches objects for
updatedowners
- return
byQuery- same as
get - hides
createdobjects by default - shows
createdobjects onallowNew
- same as
all- same as
get - same as
byQuery
- same as
list- same as
all
- same as
update- updates
createdobjects - updates
updatedobjects - returns patched object
- sends patches to
prohubforcreatedobjects - sends patches to
prohubforupdatedobjects - throws
InvalidOperationfordeletedobjects - create a new update for a
stableobject - send a new event for
stableobjects - throws
InvalidOperationfor objects not owner by user
- updates
delete- sends close event to
prohubforcreatedobjects - sends close event to
prohubforupdatedobjects - sends close event to
prohubfordeletedobjects - undo
updatedobjects - undo
deletedobjects - deletes
createdevents - creates new
deletedevent forstableobjects - throws
InvalidOperationfor objects not owner by user
- sends close event to
merge- stabilises
createdobjects - stabilises
updatedobjects with the new data. i.e other users can now see the changes - obliterates
deletedobjects - throws
InvalidOperationforstableobjects - stabilises
createdwith additional updates - stabilises
updatedwith additional updates
- stabilises
reject- cleans up
createdobjects - reverts
updated/deletedobjects - throws
InvalidOperationforstableobjects - reverts
updatedwith additional updates
- cleans up
merge.app-
onApprove -
onReject -
onChecks
-