예제 #1
0
 public function createRoomSet(Request $req, $confId, $residenceId)
 {
     if (!Entrust::can(PermissionNames::ConferenceRoomEdit($confId))) {
         return response("", 403);
     }
     return DB::transaction(function () use($req, $confId, $residenceId) {
         $res = Residence::find($residenceId);
         if (is_null($res) || $res->conferenceID != $confId) {
             return response("", 404);
         }
         $responses = [];
         foreach ($req->all() as $request) {
             $this->validateRoomSet($request);
             if (isset($request['typeID'])) {
                 $type = $request['typeID'];
             } else {
                 $tyVal = new RoomType();
                 $tyVal->name = $request['type']['name'];
                 $tyVal->capacity = $request['type']['capacity'];
                 $tyVal->accessible = $request['type']['accessible'];
                 $tyVal->save();
                 $type = $tyVal->id;
             }
             $set = new RoomSet();
             $set->typeID = $type;
             $set->residenceID = $residenceId;
             $set->name = $request['name'];
             $set->save();
             $responses[] = ['name' => $set->name, 'id' => $set->id, 'typeID' => $type];
         }
         Log::info("Created " . sizeof($responses) . " new room sets in residence {$res->name} for conference {$confId}");
         return response()->json($responses);
     });
 }