Skip to content

Commit

Permalink
fix: unify url and params (#99)
Browse files Browse the repository at this point in the history
  • Loading branch information
KingSkyLi authored Jan 17, 2025
1 parent 3cb38eb commit a8a9d37
Show file tree
Hide file tree
Showing 11 changed files with 60 additions and 49 deletions.
8 changes: 5 additions & 3 deletions .github/workflows/deploy-pr.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
name: Pre-Production Deployment

on:
pull_request_target:
push:
branches:
- master

Expand Down Expand Up @@ -61,8 +61,10 @@ jobs:
source ~/.bashrc
source /root/osgraph/myenv/bin/activate
cd $DEPLOY_PATH_BACKEND
rm ./poetry.lock
if [ -f ./poetry.lock ]; then
rm ./poetry.lock
fi
poetry install
lsof -ti:8000 | xargs kill -9 || true
nohup poetry run gunicorn -w 4 -b 0.0.0.0:8000 run:app > gunicorn.log 2>&1 &
nohup poetry run gunicorn -w 4 -b 0.0.0.0:8000 server:app > gunicorn.log 2>&1 &
EOF
10 changes: 5 additions & 5 deletions .github/workflows/deploy-tag.yml
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
name: Production Deployment

on:
push:
tags:
- "v*"
workflow_dispatch:

jobs:
build-and-deploy-tag:
Expand Down Expand Up @@ -57,8 +55,10 @@ jobs:
source ~/.bashrc
source /root/osgraph/myenv/bin/activate
cd $DEPLOY_PATH_BACKEND
rm ./poetry.lock
if [ -f ./poetry.lock ]; then
rm ./poetry.lock
fi
poetry install
lsof -ti:8000 | xargs kill -9 || true
nohup poetry run gunicorn -w 4 -b 0.0.0.0:8000 run:app > gunicorn.log 2>&1 &
nohup poetry run gunicorn -w 4 -b 0.0.0.0:8000 server:app > gunicorn.log 2>&1 &
EOF
Original file line number Diff line number Diff line change
Expand Up @@ -17,15 +17,15 @@
from typing import Any, Dict, Union

from app.models.graph_view import Graph, Push, Repo, User, OpenPR
from app.services.graph_services.develop_activities import DevelopActivitiesService
from app.services.graph_services.developer_activity import DeveloperActivityService


class DevelopActivitiesManager:
class DevelopActivityManager:
def __init__(self) -> None:
pass

def get_graph(self, data: Dict[str, Any]) -> Union[Dict, None]:
service = DevelopActivitiesService()
service = DeveloperActivityService()
graph = Graph()
result = service.execute(data=data)
if result:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,15 +17,15 @@
from typing import Any, Dict, Union

from app.models.graph_view import Belong, CommonDevelop, Graph, Orgnization, Repo
from app.services.graph_services.project_ecology import ProjectEcologyService
from app.services.graph_services.project_ecosystem import ProjectEcosystemService


class ProjectEcologyManager:
class ProjectEcosystemManager:
def __init__(self) -> None:
pass

def get_graph(self, data: Dict[str, Any]) -> Union[Dict, None]:
service = ProjectEcologyService()
service = ProjectEcosystemService()
graph = Graph()
result = service.execute(data=data)
if result:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,21 +16,21 @@

from flask import Blueprint, request

from app.managers.develop_activities import DevelopActivitiesManager
from app.managers.developer_activity import DevelopActivityManager
from app.utils.custom_exceptions import InvalidUsage
from app.utils.response_handler import ResponseHandler

develop_activities_bp = Blueprint(
"project_activities", __name__, url_prefix="/api/graphs"
developer_activity_bp = Blueprint(
"developer_activity", __name__, url_prefix="/api/graphs"
)
logger = logging.getLogger(__name__)


class DevelopActivitiesController:
class DeveloperActivityController:
def __init__(self):
self.manager = DevelopActivitiesManager()
self.manager = DevelopActivityManager()

def get_activities_graph(self, data: Dict[str, Any]) -> Dict[str, Any]:
def get_activity_graph(self, data: Dict[str, Any]) -> Dict[str, Any]:
try:
graph = self.manager.get_graph(data)
return ResponseHandler.success(graph)
Expand All @@ -42,13 +42,13 @@ def get_activities_graph(self, data: Dict[str, Any]) -> Dict[str, Any]:
return ResponseHandler.error("Internal server error", 500)


controller = DevelopActivitiesController()
controller = DeveloperActivityController()


@develop_activities_bp.route("/develop-activities/<platform>/<path:remaining_path>", methods=["GET"])
def get_project_activities(platform, remaining_path):
@developer_activity_bp.route("/developer-activity/<platform>/<path:remaining_path>", methods=["GET"])
def get_developer_activity(platform, remaining_path):
data = request.args.to_dict()
data["platform"]=platform
data["path"]=remaining_path
response = controller.get_activities_graph(data)
response = controller.get_activity_graph(data)
return ResponseHandler.jsonify_response(response)
Original file line number Diff line number Diff line change
Expand Up @@ -16,17 +16,17 @@

from flask import Blueprint, request

from app.managers.project_ecology import ProjectEcologyManager
from app.managers.project_ecosystem import ProjectEcosystemManager
from app.utils.custom_exceptions import InvalidUsage
from app.utils.response_handler import ResponseHandler

project_ecology_bp = Blueprint("project_ecology", __name__, url_prefix="/api/graphs")
project_ecology_bp = Blueprint("project_ecosystem", __name__, url_prefix="/api/graphs")
logger = logging.getLogger(__name__)


class ProjectEcologyController:
def __init__(self):
self.manager = ProjectEcologyManager()
self.manager = ProjectEcosystemManager()

def get_ecology_graph(self, data: Dict[str, Any]) -> Dict[str, Any]:
try:
Expand All @@ -43,7 +43,7 @@ def get_ecology_graph(self, data: Dict[str, Any]) -> Dict[str, Any]:
controller = ProjectEcologyController()


@project_ecology_bp.route("/project-ecology/<platform>/<path:remaining_path>", methods=["GET"])
@project_ecology_bp.route("/project-ecosystem/<platform>/<path:remaining_path>", methods=["GET"])
def get_project_ecology(platform, remaining_path):
data = request.args.to_dict()
data["platform"]=platform
Expand Down
10 changes: 5 additions & 5 deletions osgraph-service/app/services/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,22 +15,22 @@

from flask import current_app

from app.services.graph_services.develop_activities import (
DevelopActivitiesServiceConfig,
from app.services.graph_services.developer_activity import (
DeveloperActivityServiceConfig,
)
from app.services.graph_services.os_interest import OSInterestServiceConfig
from app.services.graph_services.os_partner import OSPartnerServiceConfig
from app.services.graph_services.project_community import ProjectCommunityServiceConfig
from app.services.graph_services.project_contribution import (
ProjectContributionServiceConfig,
)
from app.services.graph_services.project_ecology import ProjectEcologyServiceConfig
from app.services.graph_services.project_ecosystem import ProjectEcosystemServiceConfig

SERVICE_CONFIGS = [
ProjectContributionServiceConfig(),
ProjectEcologyServiceConfig(),
DeveloperActivityServiceConfig(),
ProjectCommunityServiceConfig(),
DevelopActivitiesServiceConfig(),
ProjectEcosystemServiceConfig(),
OSPartnerServiceConfig(),
OSInterestServiceConfig(),
]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ def get_default_end_time() -> int:
return int(datetime.now().timestamp() * 1000)


class DevelopActivitiesServiceConfig(ServiceConfig):
class DeveloperActivityServiceConfig(ServiceConfig):
def __init__(self):
super().__init__(
name="开发活动",
Expand All @@ -43,9 +43,9 @@ def __init__(self):
)


class DevelopActivitiesService(BaseService):
class DeveloperActivityService(BaseService):
def __init__(self):
super().__init__(DevelopActivitiesServiceConfig())
super().__init__(DeveloperActivityServiceConfig())

def execute(self, data: Dict[str, Any]) -> Any:
validated_data = self.validate_params(data)
Expand Down
2 changes: 1 addition & 1 deletion osgraph-service/app/services/graph_services/os_interest.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ def __init__(self):
comment="这是一张开源兴趣图谱",
inputTypes=["user"],
filterKeys=[
FilterKey(key="topic-limit", type="int", default=10, required=False),
FilterKey(key="topic-limit", type="int", default=5, required=False),
FilterKey(
key="repo-limit", type="int", default=10, required=False
),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,13 +23,20 @@
load_dotenv()


def get_default_start_time() -> int:
return int((datetime.now() - timedelta(days=30)).timestamp())
def get_default_start_time() -> str:
start_time = datetime.now() - timedelta(days=30)
return start_time.strftime('%Y-%m-%d')

def get_default_end_time() -> str:
end_time = datetime.now()
return end_time.strftime('%Y-%m-%d')

def get_default_end_time() -> int:
return int(datetime.now().timestamp())

def string_to_timestamp(date_str: str) -> int:
try:
date_obj = datetime.strptime(date_str, '%Y-%m-%d')
return int(date_obj.timestamp())
except ValueError:
return int(date_str)

class ProjectContributionServiceConfig(ServiceConfig):
def __init__(self):
Expand All @@ -40,13 +47,13 @@ def __init__(self):
filterKeys=[
FilterKey(
key="start-time",
type="int",
type="str",
default=get_default_start_time(),
required=False,
),
FilterKey(
key="end-time",
type="int",
type="str",
default=get_default_end_time(),
required=False,
),
Expand All @@ -66,8 +73,10 @@ def execute(self, data: Dict[str, Any]) -> Any:
input:str = self.inputTypes[0]
path: str = validated_data["path"]
platform: str = validated_data["platform"]
start_time: int = validated_data["start-time"] or get_default_start_time()
end_time: int = validated_data["end-time"] or get_default_end_time()
start_time_str: str = validated_data["start-time"] or get_default_start_time()
start_time: int = string_to_timestamp(start_time_str)
end_time_str: str = validated_data["end-time"] or get_default_end_time()
end_time: int = string_to_timestamp(end_time_str)
repo_limit: int = validated_data["repo-limit"]
es = ElasticsearchClient()
query = {"match": {"name": path}}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ def get_default_end_time() -> int:
return int(datetime.now().timestamp() * 1000)


class ProjectEcologyServiceConfig(ServiceConfig):
class ProjectEcosystemServiceConfig(ServiceConfig):
def __init__(self):
super().__init__(
name="项目生态",
Expand All @@ -43,9 +43,9 @@ def __init__(self):
)


class ProjectEcologyService(BaseService):
class ProjectEcosystemService(BaseService):
def __init__(self):
super().__init__(ProjectEcologyServiceConfig())
super().__init__(ProjectEcosystemServiceConfig())

def execute(self, data: Dict[str, Any]) -> Any:
validated_data = self.validate_params(data)
Expand Down

0 comments on commit a8a9d37

Please sign in to comment.