def convert_to_pb_branch(db_branch, **kwargs):
        pb_branch = API.Branch()
        pb_branch.id = db_branch.id
        pb_branch.name = db_branch.name
        pb_branch.can_push = db_branch.can_push

        return pb_branch
Пример #2
0
    def get(self, request, *args, **kwargs):
        all = request.GET.get('all', None)

        # Get By Id
        if 'user_id' in kwargs:
            user_id = kwargs['user_id']

            if User.objects.filter(pk=user_id):
                db_user = User.objects.get(pk=user_id)
                pb_user = APIConverter.convert_to_pb_user(db_user, all=all, extra=True)
                return APIResponse.api_response_get(pb_user)
            else:
                return APIResponse.api_error_response(404, 'Does Not Exist User')
        else:
            db_users = User.objects.all()
            pb_user_list = API.UserList()

            aux_users = []
            for db_user in db_users:
                pb_user = APIConverter.convert_to_pb_user(db_user, all=all, extra=True)
                aux_users.append(pb_user)

            pb_user_list.users.extend(aux_users)

            return APIResponse.api_response_get(pb_user_list)
Пример #3
0
    def get(self, request, *args, **kwargs):
        state = request.GET.get('state', None)

        # Get By Id
        if 'issue_id' in kwargs:
            issue_id = kwargs['issue_id']

            if Issue.objects.filter(pk=issue_id):
                db_issue = Issue.objects.get(pk=issue_id)
                pb_issue = APIConverter.convert_to_pb_issue(db_issue)
                return APIResponse.api_response_get(pb_issue)
            else:
                return APIResponse.api_error_response(404,
                                                      'Does Not Exist Issue')
        else:
            if state:
                db_issues = Issue.objects.all()
            else:
                db_issues = Issue.objects.filter(_issue_state=state)

            pb_issue_list = API.IssueList()

            aux_issues = []
            for db_issue in db_issues:
                pb_issue = APIConverter.convert_to_pb_issue(db_issue, all=all)
                aux_issues.append(pb_issue)

            pb_issue_list.issues.extend(aux_issues)

            return APIResponse.api_response_get(pb_issue_list)
    def convert_to_pb_group(db_group, **kwargs):
        pb_group = API.Group()
        pb_group.id = db_group.id
        pb_group.name = db_group.name
        pb_group.description = db_group.description
        pb_group.visibility = db_group.visibility
        pb_group.web_url = db_group.web_url

        return pb_group
    def convert_to_pb_commit(db_commit, **kwargs):
        pb_commit = API.Commit()
        pb_commit.id = db_commit.id
        pb_commit.project_id = db_commit.project_id
        pb_commit.title = db_commit.title
        if db_commit.committer_id:
            pb_commit.committer_id = db_commit.committer_id
        pb_commit.committed_date.FromSeconds(db_commit.committed_date)
        pb_commit.message = db_commit.message
        pb_commit.created_at.FromSeconds(db_commit.created_at)

        return pb_commit
    def convert_to_pb_project(db_project, **kwargs):
        pb_project = API.Project()
        pb_project.id = db_project.id
        pb_project.name = db_project.name
        pb_project.name_with_namespace = db_project.name_with_namespace
        pb_project.description = db_project.description
        pb_project.default_branch = db_project.default_branch
        pb_project.visibility = db_project.visibility
        pb_project.web_url = db_project.web_url
        pb_project.avatar_url = db_project.avatar_url
        pb_project.created_at.FromSeconds(db_project.created_at)

        return pb_project
    def convert_to_pb_issue(db_issue, **kwargs):
        pb_issue = API.Issue()
        pb_issue.id = db_issue.id
        pb_issue.project_id = db_issue.project_id
        pb_issue.title = db_issue.title
        pb_issue.state = db_issue.issue_state
        pb_issue.description = db_issue.description
        if db_issue.author_id:
            pb_issue.author_id = db_issue.author_id
        pb_issue.web_url = db_issue.web_url
        pb_issue.closed_at.FromSeconds(db_issue.closed_at)
        pb_issue.created_at.FromSeconds(db_issue.created_at)

        return pb_issue
    def convert_to_pb_merge_request(db_merge_request, **kwargs):
        pb_merge_request = API.MergeRequest()
        pb_merge_request.id = db_merge_request.id
        pb_merge_request.project_id = db_merge_request.project_id
        pb_merge_request.title = db_merge_request.title
        pb_merge_request.description = db_merge_request.description
        pb_merge_request.state = db_merge_request.merge_state
        if db_merge_request.author_id:
            pb_merge_request.author_id = db_merge_request.author_id
        pb_merge_request.web_url = db_merge_request.web_url
        pb_merge_request.created_at.FromSeconds(db_merge_request.created_at)

        if db_merge_request.merged_at:
            pb_merge_request.merged_at.FromSeconds(db_merge_request.merged_at)

        return pb_merge_request
Пример #9
0
    def get(self, request, *args, **kwargs):
        # Get By Id
        if 'group_id' in kwargs:
            group_id = kwargs['group_id']

            if Group.objects.filter(pk=group_id):
                db_group = Group.objects.get(pk=group_id)
                pb_group = APIConverter.convert_to_pb_group(db_group)
                return APIResponse.api_response_get(pb_group)
            else:
                return APIResponse.api_error_response(404,
                                                      'Does Not Exist Group')
        else:
            db_groups = Group.objects.all()
            pb_group_list = API.GroupList()

            aux_groups = []
            for db_group in db_groups:
                pb_group = APIConverter.convert_to_pb_group(db_group)
                aux_groups.append(pb_group)

            pb_group_list.groups.extend(aux_groups)

            return APIResponse.api_response_get(pb_group_list)
Пример #10
0
    def convert_to_pb_user(db_user, **kwargs):
        pb_user = API.User()
        pb_user.id = db_user.id
        pb_user.name = db_user.name
        pb_user.username = db_user.username
        pb_user.email = db_user.email
        pb_user.state = db_user.user_state
        pb_user.avatar_url = db_user.avatar_url
        pb_user.web_url = db_user.web_url
        pb_user.is_admin = db_user.is_admin
        pb_user.created_at.FromSeconds(db_user.created_at)

        # Projects
        aux_projects = []
        db_projects = db_user.projects.all()

        for db_project in db_projects:
            pb_project = APIConverter.convert_to_pb_project(db_project)
            aux_projects.append(pb_project)

        pb_user.projects.extend(aux_projects)

        if 'extra' in kwargs and kwargs['extra']:
            # Issues
            aux_issues = []

            if 'all' in kwargs and kwargs['all']:
                db_issues = Issue.objects.filter(_author=db_user).order_by('-_closed_at')
            else:
                db_issues = Issue.objects.filter(_author=db_user).order_by('-_closed_at')[:5]

            for db_issue in db_issues:
                pb_issue = APIConverter.convert_to_pb_issue(db_issue)
                aux_issues.append(pb_issue)

            pb_user.issues.extend(aux_issues)

            # Commits
            aux_commits = []

            if 'all' in kwargs and kwargs['all']:
                db_commits = Commit.objects.filter(_committer=db_user).order_by('-_committed_date')
            else:
                db_commits = Commit.objects.filter(_committer=db_user).order_by('-_committed_date')[:5]

            for db_commit in db_commits:
                pb_commit = APIConverter.convert_to_pb_commit(db_commit)
                aux_commits.append(pb_commit)

            pb_user.commits.extend(aux_commits)

            # Merge Requests
            aux_merge_requests = []

            if 'all' in kwargs and kwargs['all']:
                db_merge_requests = MergeRequest.objects.filter(_author=db_user).order_by('-_created_at')
            else:
                db_merge_requests = MergeRequest.objects.filter(_author=db_user).order_by('-_created_at')[:5]

            for db_merge_request in db_merge_requests:
                pb_merge_request = APIConverter.convert_to_pb_merge_request(db_merge_request)
                aux_merge_requests.append(pb_merge_request)

            pb_user.merge_requests.extend(aux_merge_requests)

        return pb_user
Пример #11
0
 def api_error_response(status_code, message):
     error = API.Error()
     error.status_code = status_code
     error.message = message
     return HttpResponse(error.SerializeToString(), status=status_code, content_type="application/octet-stream")