export const Api = {
requestQuizData() {
return Api.get(`/quiz/quizzes/${Api.defaultQuizSlug}/`)
.then((data) => {
const meta = Object.assign(new Quiz(), data);
meta.sessionKey = data["session_key"];
meta.requireAuth = data["required_auth"];
delete meta.session_key;
delete meta.required_auth;
console.log("API_meta1", meta);
return meta;
})
.then((meta) => {
return Api.get(`/quiz/sections/?quiz=${meta.slug}`)
.then((data) => {
meta.sections = data.results.map((i) => Section.create(i));
console.log("API_meta2", meta);
return meta;
})
.then((meta) => {
return Api.get(`/quiz/pages/?quiz=${meta.slug}`).then((response) => {
response.results = response.results.filter(result => result.number < 7);
meta.pages = response.results.map((i) => Page.create(i));
console.log("API_meta3", meta);
return meta;
});
});
})
.catch((error) => {
console.error("Something went wrong: " + error);
});
}
}
export const Api = {
requestQuizData() {
this.returnData = null;
return Api.get(`/quiz/quizzes/${Api.defaultQuizSlug}/`)
.then((quizMetaData) => {
this.returnData = Object.assign(quizMetaData, {});
this.returnData["sessionKey"] = quizMetaData["session_key"];
this.returnData["required_auth"] = quizMetaData["required_auth"];
return Api.get(`/quiz/sections/?quiz=${this.returnData.slug}`);
})
.then((sectionData) => {
this.returnData["sections"] = sectionData.results.map((i) => Section.create(i));
return Api.get(`/quiz/pages/?quiz=${this.returnData.slug}`);
})
.then((pageData) => {
pageData.results = pageData.results.filter(result => result.number < 7);
this.returnData["pages"] = pageData.results.map((i) => Page.create(i));
return Object.assign(new Quiz(), this.returnData);
})
.catch((error) => {
console.log('error', error);
})
}
}
chaining을 사용하면 훨씬 좋은 코드를 작성할 수 있다.