moto/moto/codecommit/responses.py

57 lines
1.7 KiB
Python
Raw Normal View History

import json
import re
from moto.core.responses import BaseResponse
from .models import codecommit_backends
from .exceptions import InvalidRepositoryNameException
2019-12-26 16:30:06 +01:00
def _is_repository_name_valid(repository_name):
name_regex = re.compile(r"[\w\.-]+")
result = name_regex.split(repository_name)
if len(result) > 0:
for match in result:
if len(match) > 0:
return False
return True
class CodeCommitResponse(BaseResponse):
@property
def codecommit_backend(self):
return codecommit_backends[self.region]
def create_repository(self):
2019-12-26 16:30:06 +01:00
if not _is_repository_name_valid(self._get_param("repositoryName")):
raise InvalidRepositoryNameException()
repository_metadata = self.codecommit_backend.create_repository(
2019-12-26 15:02:24 +01:00
self._get_param("repositoryName"),
self._get_param("repositoryDescription"),
)
return json.dumps({"repositoryMetadata": repository_metadata})
def get_repository(self):
2019-12-26 16:30:06 +01:00
if not _is_repository_name_valid(self._get_param("repositoryName")):
raise InvalidRepositoryNameException()
2019-12-26 15:02:24 +01:00
repository_metadata = self.codecommit_backend.get_repository(
self._get_param("repositoryName")
)
return json.dumps({"repositoryMetadata": repository_metadata})
def delete_repository(self):
2019-12-26 16:30:06 +01:00
if not _is_repository_name_valid(self._get_param("repositoryName")):
raise InvalidRepositoryNameException()
2019-12-26 15:02:24 +01:00
repository_id = self.codecommit_backend.delete_repository(
self._get_param("repositoryName")
)
if repository_id:
return json.dumps({"repositoryId": repository_id})
return json.dumps({})