2016-02-25 12:31:21 -08:00
|
|
|
import AuthenticationPage from './AuthenticationPage';
|
|
|
|
|
2016-02-25 20:40:35 -08:00
|
|
|
function getSlug(path) {
|
|
|
|
const m = path.match(/([^\/]+)(\.[^\/\.]+)?$/);
|
|
|
|
return m && m[1];
|
|
|
|
}
|
|
|
|
|
2016-02-25 12:31:21 -08:00
|
|
|
export default class TestRepo {
|
|
|
|
constructor(config) {
|
|
|
|
this.config = config;
|
2016-02-25 20:40:35 -08:00
|
|
|
if (window.repoFiles == null) {
|
|
|
|
throw 'The TestRepo backend needs a "window.repoFiles" object.';
|
|
|
|
}
|
2016-02-25 12:31:21 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
authComponent() {
|
|
|
|
return AuthenticationPage;
|
|
|
|
}
|
|
|
|
|
|
|
|
authenticate(state) {
|
|
|
|
return Promise.resolve({email: state.email});
|
|
|
|
}
|
2016-02-25 20:40:35 -08:00
|
|
|
|
|
|
|
entries(collection) {
|
|
|
|
const entries = [];
|
|
|
|
const folder = collection.get('folder');
|
|
|
|
if (folder) {
|
|
|
|
for (var path in window.repoFiles[folder]) {
|
|
|
|
entries.push({
|
|
|
|
path: folder + '/' + path,
|
|
|
|
slug: getSlug(path),
|
|
|
|
raw: window.repoFiles[folder][path].content
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
return Promise.resolve(entries);
|
|
|
|
}
|
|
|
|
|
|
|
|
entry(collection, slug) {
|
|
|
|
return Promise.resolve({slug: slug, title: 'hello'});
|
|
|
|
}
|
2016-02-25 12:31:21 -08:00
|
|
|
}
|