urbit/pkg/landscape/ted/group/leave.hoon

42 lines
963 B
Plaintext

/- spider,
metadata=metadata-store,
*group,
inv=invite-store,
store=group-store,
pull-hook
/+ strandio, resource, view=group-view
=>
|%
++ strand strand:spider
++ poke poke:strandio
++ raw-poke-our raw-poke-our:strandio
--
^- thread:spider
|= arg=vase
=/ m (strand ,vase)
=+ !<([~ =action:view] arg)
?> ?=(%leave -.action)
;< =bowl:spider bind:m get-bowl:strandio
=* rid resource.action
=/ pull-hook-act=cage
:- %pull-hook-action
!> ^- action:pull-hook
[%remove rid]
=/ leave=cage
:- %group-update-0
!> ^- update:store
[%remove-members rid (silt our.bowl ~)]
=/ remove=cage
:- %group-update-0
!> ^- update:store
[%remove-group rid ~]
;< ~ bind:m
(raw-poke-our %group-push-hook leave)
;< ~ bind:m
(raw-poke-our %group-pull-hook pull-hook-act)
;< ~ bind:m
(raw-poke-our %contact-pull-hook pull-hook-act)
;< ~ bind:m
(raw-poke-our %group-store remove)
(pure:m !>(~))