package io.fathom.cloud.secrets.services;
import io.fathom.cloud.protobuf.SecretsModel.SecretRecordData;
import io.fathom.cloud.protobuf.SecretsModel.SecretRecordItemData;
import io.fathom.cloud.server.model.Project;
import io.fathom.cloud.services.SecretService.Secret;
import io.fathom.cloud.services.SecretService.SecretInfo;
import io.fathom.cloud.services.SecretService.SecretItem;
import org.keyczar.Crypter;
public class SecretImpl implements Secret {
final Project project;
final SecretRecordData data;
final Crypter crypter;
public SecretImpl(Project project, SecretRecordData data, Crypter crypter) {
this.project = project;
this.data = data;
this.crypter = crypter;
}
public SecretRecordData getData() {
return data;
}
@Override
public SecretItem find(String key) {
for (SecretRecordItemData item : data.getItemList()) {
if (key.equals(item.getKey())) {
return new SecretItemImpl(this, item);
}
}
return null;
}
Crypter getCrypter() {
return crypter;
}
public Project getProject() {
return project;
}
@Override
public SecretInfo getSecretInfo() {
SecretInfo info = new SecretInfo();
info.algorithm = data.getAlgorithm();
info.keySize = data.getKeySize();
info.name = data.getName();
info.subject = data.getSubject();
return info;
}
@Override
public long getId() {
return data.getId();
}
}