Implemented bucket service
This commit is contained in:
parent
b0f23f129d
commit
e034bad71e
@ -9,9 +9,9 @@ import java.util.Optional;
|
|||||||
|
|
||||||
public interface BucketService {
|
public interface BucketService {
|
||||||
|
|
||||||
void createBucket(Bucket lobby);
|
void createBucket(Bucket bucket);
|
||||||
|
|
||||||
void removeBucket(Bucket lobby);
|
void removeBucket(Bucket bucket);
|
||||||
|
|
||||||
Optional<Bucket> findBucket(Node node, String identifier);
|
Optional<Bucket> findBucket(Node node, String identifier);
|
||||||
|
|
||||||
|
|||||||
@ -0,0 +1,59 @@
|
|||||||
|
package ru.dragonestia.loadbalancer.service.impl;
|
||||||
|
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import ru.dragonestia.loadbalancer.model.Bucket;
|
||||||
|
import ru.dragonestia.loadbalancer.model.Node;
|
||||||
|
import ru.dragonestia.loadbalancer.model.User;
|
||||||
|
import ru.dragonestia.loadbalancer.repository.BucketRepository;
|
||||||
|
import ru.dragonestia.loadbalancer.service.BucketService;
|
||||||
|
import ru.dragonestia.loadbalancer.util.NamingValidator;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
public class BucketServiceImpl implements BucketService {
|
||||||
|
|
||||||
|
private final BucketRepository bucketRepository;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void createBucket(Bucket bucket) {
|
||||||
|
if (!NamingValidator.validateBucketIdentifier(bucket.getIdentifier())) {
|
||||||
|
throw new Error("Invalid bucket identifier format");
|
||||||
|
}
|
||||||
|
|
||||||
|
bucketRepository.createBucket(bucket);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void removeBucket(Bucket bucket) {
|
||||||
|
bucketRepository.removeBucket(bucket);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Optional<Bucket> findBucket(Node node, String identifier) {
|
||||||
|
return bucketRepository.findBucket(node, identifier);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Bucket> allBuckets(Node node) {
|
||||||
|
return bucketRepository.all(node);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int countAvailableBuckets(Node node, int requiredSlots) {
|
||||||
|
throw new RuntimeException("Not implemented");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Bucket pickAvailableBucket(Node node, List<User> users) {
|
||||||
|
throw new RuntimeException("Not implemented");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void freeBucket(Bucket bucket, List<User> users) {
|
||||||
|
throw new RuntimeException("Not implemented");
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -8,4 +8,8 @@ public class NamingValidator {
|
|||||||
public boolean validateNodeIdentifier(String input) {
|
public boolean validateNodeIdentifier(String input) {
|
||||||
return input.matches("^[a-z\\d-]+$");
|
return input.matches("^[a-z\\d-]+$");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean validateBucketIdentifier(String input) {
|
||||||
|
return input.matches("^[a-z\\d-]+$");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user