// Path: src/main/java/com/restfiddle/dao/NodeRepository.java
// public interface NodeRepository extends RfRepository<BaseNode, String> {
//     
//     @Query("{ 'parentId' : ?0 }")
//     public List<BaseNode> getChildren(String nodeId);
// 
//     @Query("{ 'projectId' : ?0 }")
//     public List<BaseNode> findNodesFromAProject(String projectId);
// 
//     @Query("{ 'projectId' : ?0 ,$or : [{name : { $regex : ?1, $options: 'i' }},{ nodeType : {$exists: true}}]}")
//     public List<BaseNode> searchNodesFromAProject(String projectId, String search);
//     
//     @Query("{ 'projectId' : ?0 , nodeType : {$exists:false}, name : { $regex : ?1, $options: 'i' }} }")
//     public List<BaseNode> findRequestsFromAProject(String projectId, String search);
//   
//     @Query("{'workspaceId' : ?0, 'starred' : true , name : { $regex : ?1, $options: 'i'}}")
//     public Page<BaseNode> findStarredNodes(String workspaceId, String search, Pageable pageable);
// 
//     @Query("{ 'tags' : ?0 }")
//     public Page<BaseNode> findTaggedNodes(String tagId, Pageable pageable);
// 
//     @Query("{ 'tags' : ?0 , $or : [{name : { $regex : ?1, $options: 'i' }},{ nodeType : {$exists: true}}]}")
//     public Page<BaseNode> searchTaggedNodes(String tagId, String search, Pageable pageable);
//     
//     @Query("{ 'workspaceId' : ?0, 'nodeType' : 'PROJECT', name : { $regex : ?1, $options: 'i'}}")
//     public List<BaseNode> findProjectsfromAWorkspace(String workspaceId, String search);
// }
// 
// Path: src/main/java/com/restfiddle/dao/ProjectRepository.java
// public interface ProjectRepository extends RfRepository<Project, String> {
// 
//     // TODO : Implement me!
//     @Query("{ 'workspaceId' : '' }")
//     public List<Project> findProjectsFromAWorkspace(@Param("workspaceId") String workspaceId);
// }


import java.util.List;
import javax.annotation.Resource;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import com.restfiddle.constant.NodeType;
import com.restfiddle.dao.NodeRepository;
import com.restfiddle.dao.ProjectRepository;
import com.restfiddle.dao.WorkspaceRepository;
import com.restfiddle.dto.NodeDTO;
import com.restfiddle.dto.ProjectDTO;
import com.restfiddle.entity.BaseNode;
import com.restfiddle.entity.Project;
import com.restfiddle.entity.Workspace;
/*
 * Copyright 2014 Ranjan Kumar
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.restfiddle.controller.rest;





@RestController
@EnableAutoConfiguration
@ComponentScan
@Transactional
public class ProjectController {
    Logger logger = LoggerFactory.getLogger(ProjectController.class);

    @Resource
    private WorkspaceRepository workspaceRepository;

    @Resource
// Path: src/main/java/com/restfiddle/dao/NodeRepository.java
// public interface NodeRepository extends RfRepository<BaseNode, String> {
//     
//     @Query("{ 'parentId' : ?0 }")
//     public List<BaseNode> getChildren(String nodeId);
// 
//     @Query("{ 'projectId' : ?0 }")
//     public List<BaseNode> findNodesFromAProject(String projectId);
// 
//     @Query("{ 'projectId' : ?0 ,$or : [{name : { $regex : ?1, $options: 'i' }},{ nodeType : {$exists: true}}]}")
//     public List<BaseNode> searchNodesFromAProject(String projectId, String search);
//     
//     @Query("{ 'projectId' : ?0 , nodeType : {$exists:false}, name : { $regex : ?1, $options: 'i' }} }")
//     public List<BaseNode> findRequestsFromAProject(String projectId, String search);
//   
//     @Query("{'workspaceId' : ?0, 'starred' : true , name : { $regex : ?1, $options: 'i'}}")
//     public Page<BaseNode> findStarredNodes(String workspaceId, String search, Pageable pageable);
// 
//     @Query("{ 'tags' : ?0 }")
//     public Page<BaseNode> findTaggedNodes(String tagId, Pageable pageable);
// 
//     @Query("{ 'tags' : ?0 , $or : [{name : { $regex : ?1, $options: 'i' }},{ nodeType : {$exists: true}}]}")
//     public Page<BaseNode> searchTaggedNodes(String tagId, String search, Pageable pageable);
//     
//     @Query("{ 'workspaceId' : ?0, 'nodeType' : 'PROJECT', name : { $regex : ?1, $options: 'i'}}")
//     public List<BaseNode> findProjectsfromAWorkspace(String workspaceId, String search);
// }
// 
// Path: src/main/java/com/restfiddle/dao/ProjectRepository.java
// public interface ProjectRepository extends RfRepository<Project, String> {
// 
//     // TODO : Implement me!
//     @Query("{ 'workspaceId' : '' }")
//     public List<Project> findProjectsFromAWorkspace(@Param("workspaceId") String workspaceId);
// }


// Path: src/main/java/com/restfiddle/controller/rest/ProjectController.java
import java.util.List;
import javax.annotation.Resource;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import com.restfiddle.constant.NodeType;
import com.restfiddle.dao.NodeRepository;
import com.restfiddle.dao.ProjectRepository;
import com.restfiddle.dao.WorkspaceRepository;
import com.restfiddle.dto.NodeDTO;
import com.restfiddle.dto.ProjectDTO;
import com.restfiddle.entity.BaseNode;
import com.restfiddle.entity.Project;
import com.restfiddle.entity.Workspace;

/*
 * Copyright 2014 Ranjan Kumar
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.restfiddle.controller.rest;





@RestController
@EnableAutoConfiguration
@ComponentScan
@Transactional
public class ProjectController {
    Logger logger = LoggerFactory.getLogger(ProjectController.class);

    @Resource
    private WorkspaceRepository workspaceRepository;

    @Resource
    private ProjectRepository projectRepository;