def callback_manage_trajectory(self, req):
     cmd_type = req.cmd_type
     trajectory_id = req.trajectory_id
     trajectory_data = Trajectory(
         name=req.trajectory.name,
         description=req.trajectory.description,
         trajectory_plan=req.trajectory.trajectory_plan)
     # GET an existing trajectory
     if cmd_type == TrajectoryCommandType.GET:
         traj = self.get_trajectory(trajectory_id)
         if traj is None:
             return self.create_trajectory_response(
                 400, "No trajectory found with id : " + str(trajectory_id))
         return self.create_trajectory_response(
             200, "trajectory has been found", traj)
     # Create a new trajectory
     elif cmd_type == TrajectoryCommandType.CREATE:
         (new_trajectory_id,
          msg) = self.create_new_trajectory(trajectory_data)
         new_trajectory = self.get_trajectory(new_trajectory_id)
         if new_trajectory is None:
             return self.create_trajectory_response(400, msg)
         return self.create_trajectory_response(200, msg, new_trajectory)
     # UPDATE existing trajectory
     elif cmd_type == TrajectoryCommandType.UPDATE:
         traj = self.get_trajectory(trajectory_id)
         if traj is None:
             return self.create_trajectory_response(
                 400, "No trajectory found with id : " + str(trajectory_id))
         success, update_msg = self.update_trajectory(traj, trajectory_data)
         if not success:
             return self.create_trajectory_response(
                 400, update_msg + str(trajectory_id))
         return self.create_trajectory_response(200, update_msg, traj)
     # DELETE sequence
     elif cmd_type == TrajectoryCommandType.DELETE:
         success = self.delete_trajectory(trajectory_id)
         if not success:
             return self.create_trajectory_response(
                 400, "Could not delete trajectory with id : " +
                 str(trajectory_id))
         return self.create_trajectory_response(
             200, "Trajectory has been deleted")
     # Wrong cmd_type
     else:
         return self.create_trajectory_response(400, "Wrong command type")
 def create_trajectory_response(status, message, trajectory=None):
     trajectory_msg = Trajectory()
     if trajectory is not None:
         trajectory_msg.trajectory_plan = trajectory.trajectory_plan
         trajectory_msg.id = trajectory.id
         trajectory_msg.name = trajectory.name
         trajectory_msg.description = trajectory.description
         return {
             'status': status,
             'message': message,
             'trajectory': trajectory_msg
         }
     return {'status': status, 'message': message}