<?php
namespace app\mobile\controller;

use app\mobile\service\MemberPosition;

class OmsMemberPosition extends OmsBase
{
    private function respond($method,$work) {return $this->guarded(function()use($method,$work){$this->requireMethod($method);$a=$this->current();return json(['code'=>0,'message'=>'成功','data'=>$work($a)]);});}
    public function options() {return $this->respond('GET',function($a){return ['teams'=>MemberPosition::managerTeams($a,OmsVisitor::adminFor($a)),'canApply'=>(bool)OmsLeaveApply::memberFor($a)];});}
    public function mine() {return $this->respond('GET',function($a){return MemberPosition::mine($a);});}
    public function team() {return $this->respond('GET',function($a){return MemberPosition::team($a,OmsVisitor::adminFor($a),(int)$this->request->get('teamId'));});}
    public function apply() {return $this->respond('POST',function($a){return MemberPosition::apply($a,$this->request->post());});}
    public function withdraw() {return $this->respond('POST',function($a){return MemberPosition::withdraw($a,(int)$this->request->post('requestId'));});}
    public function assign() {return $this->respond('POST',function($a){return MemberPosition::assign($a,OmsVisitor::adminFor($a),$this->request->post());});}
    public function decide() {return $this->respond('POST',function($a){return MemberPosition::decide($a,OmsVisitor::adminFor($a),$this->request->post());});}
}
