blob: 6767b24bacb9c1f13dfeee6c770aa3a33cf31b79 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You 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 org.apache.streampark.console.core.service;
import org.apache.streampark.console.base.domain.RestRequest;
import org.apache.streampark.console.base.domain.RestResponse;
import org.apache.streampark.console.core.entity.Application;
import org.apache.streampark.console.core.entity.Project;
import org.apache.streampark.console.core.enums.GitAuthorizedErrorEnum;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
import java.util.Map;
public interface ProjectService extends IService<Project> {
/**
* Create a new instance.
*
* @param project Project to be created
* @return RestResponse
*/
RestResponse create(Project project);
/**
* Update the given Project
*
* @param projectParam The project to be updated
* @return whether the update is successful
*/
boolean update(Project projectParam);
/**
* remove the given project by project id
*
* @param id project id
* @return whether the remove is successful
*/
boolean removeById(Long id);
/**
* Retrieves a page of {@link Project} objects based on the provided parameters.
*
* @param project @param applicationLog The {@link Project} object containing the search criteria.
* @param restRequest @param request The {@link RestRequest} object used for pagination and
* sorting.
* @return An {@link IPage} containing the retrieved {@link Project} objects.
*/
IPage<Project> getPage(Project project, RestRequest restRequest);
/**
* Check whether the corresponding project exists through team id
*
* @param teamId Project contains team id
* @return whether the corresponding project exists
*/
Boolean existsByTeamId(Long teamId);
/**
* List all project by team id
*
* @param teamId Project contains team id
* @return List of project
*/
List<Project> listByTeamId(Long teamId);
/**
* Build the project
*
* @param id Project id
* @throws Exception
*/
void build(Long id) throws Exception;
/**
* Get the construction log of the specified project
*
* @param id Project id
* @param startOffset startOffset
* @return RestResponse
*/
RestResponse getBuildLog(Long id, Long startOffset);
/**
* List all modules of the specified project
*
* @param id Project id
* @return List of modules
*/
List<String> listModules(Long id);
/**
* List all Jars of the specified project
*
* @param project Project
* @return List of Jars
*/
List<String> listJars(Project project);
/**
* List all project configs of the specified project
*
* @param project Project
* @return List of configs
*/
List<Map<String, Object>> listConf(Project project);
/**
* Get the configuration path of Application
*
* @param id Project id
* @param module Module
* @return Application config path
*/
String getAppConfPath(Long id, String module);
/**
* List all Application of the specified project
*
* @param project Project
* @return List of Applications
*/
List<Application> listApps(Project project);
/**
* Check whether the corresponding project exists
*
* @param project Project
* @return whether the corresponding project exists
*/
boolean exists(Project project);
/**
* Gets branch information under the project
*
* @param project Project
* @return branch information under the project
*/
List<String> getAllBranches(Project project);
/**
* Check git
*
* @param project Project
* @return Check git
*/
GitAuthorizedErrorEnum gitCheck(Project project);
}