diff --git a/src/server/controllers/member.js b/src/server/controllers/member.js index a295202..cae8d0f 100755 --- a/src/server/controllers/member.js +++ b/src/server/controllers/member.js @@ -125,7 +125,18 @@ module.exports = { getSlideCardData(req, res) { memberServices.getSlideCard(req) .then(data => { - return res.status(201).send(data) + return res.status(200).send(data) + }) + .catch(error => { + res.status(400).send(error.errors) + }); + }, + + loadSavedCards(req, res) { + console.log('loadSavedCards') + memberServices.loadSavedCards(req) + .then(data => { + return res.status(200).send(data) }) .catch(error => { res.status(400).send(error.errors) diff --git a/src/server/routes/member.js b/src/server/routes/member.js index 5fc4f7e..7a43f83 100644 --- a/src/server/routes/member.js +++ b/src/server/routes/member.js @@ -293,7 +293,28 @@ module.exports = (app, url) => { * app.post("usertransportlist"); * app.post("usertransportprofile"); * app.post("getdashcarddata"); - * app.post("loadsavedcards"); + */ + /** + * @swagger + * /v1/user/loadsavedcards: + * get: + * tags: + * - Users + * summary: Retrieve a single JSONPlaceholder user. + * description: Retrieve a single JSONPlaceholder user. Can be used to populate a user profile when prototyping or testing an API. + * security: + * - bearerAuth: [] + * responses: + * 200: + * description: A single user. + * content: + * application/json: + * schema: + * type: object + * $ref: '#/components/schemas/Member' + */ + app.get(url + "user/loadsavedcards", auth, memberController.loadSavedCards); + /* * app.post("savedashcard"); * app.post("saveuserbudget"); * app.post("resetpass"); diff --git a/src/server/services/card/memberCard.js b/src/server/services/card/memberCard.js index 97aac3e..aa570a9 100644 --- a/src/server/services/card/memberCard.js +++ b/src/server/services/card/memberCard.js @@ -220,14 +220,13 @@ module.exports = (memberService) => { let resultOut = {}; let total_record = 0; if (results[0]) { - var self = this; var dealCardCount = 0; var surveyCardCount = 0; var blogCardCount = 0; - for(const card of results[0]){ + for (const card of results[0]) { let testCardAllowed = this.CARD_ADD_ALLOWED if (cardType == 22000) { - testCardAllowed = await this.verifyMemberCardDescision(card, member); + testCardAllowed = await this.verifyMemberCardDescision(card, member); } console.log('testCardAllowed', testCardAllowed); let cardCountryAllow = true; @@ -338,13 +337,58 @@ module.exports = (memberService) => { async verifyMemberCardDescision(cardData, member) { var behavior = cardData.card_behavior; var func = 'behavior' + behavior; - console.log(func) if (func in cardBehaviorService) { console.log('call function ', func) //console.log(await invoke(cardBehaviorService, func, member)) return await invoke(cardBehaviorService, func, member); } return this.CARD_ADD_ALLOWED; + }, + + + async getSavedCards(memberId) { + console.log(memberId) + var result = { + total_record : 0, + session_valid : '', + internal_return : 0, + status: 'OK' + } + var saveCardsSql = `SELECT m.id AS saved_card_id, mc.*,mc.id AS card_id + FROM member_saved_cards m + LEFT JOIN main_cards mc ON m.card_id = mc.id + WHERE m.member_id = :member_id AND m.status = 1;` + ; + const resultRaw = await sequelize.query(saveCardsSql, { + replacements: { member_id: memberId } + }); + + if (resultRaw[0]) { + result.total_record = resultRaw[0].length; + let ic = 0; + for (const card of resultRaw[0]) { + suffix = ic.toString().padStart(5, '0'); + result['name_' + suffix] = card.name; + result['short_title_' + suffix] = card.short_title; + result['title_' + suffix] = card.title; + result['description_' + suffix] = card.description; + result['short_title_' + suffix] = card.short_title; + result['title_' + suffix] = card.short_title; + result['background_picture_' + suffix] = card.background_picture; + result['button1_' + suffix] = card.button1; + result['button1_text_' + suffix] = card.button1_text; + result['button1_action_' + suffix] = card.button1_action; + result['can_save_' + suffix] = card.can_save; + result['card_id_' + suffix] = card.card_id; + result['template_' + suffix] = card.template; + result['card_canexpire_' + suffix] = card.card_canexpire; + result['expires_' + suffix] = card.card_expiration; + result['titleshow_' + suffix] = card.titleshow; + ic++; + } + } + + return { result: result } } } diff --git a/src/server/services/member/member.js b/src/server/services/member/member.js index 43b3dd3..619ec47 100755 --- a/src/server/services/member/member.js +++ b/src/server/services/member/member.js @@ -601,15 +601,28 @@ module.exports = { }, async getSlideCard(req) { - const member_id = req.user.id; + const member = await this.getProfile(req); + + if (member.country == "") { + this.detectMemberLocation(member.id, outm); + if (outm.country_found == 1) { + member.country = outm.country; + } + } const card_type = (req.query.card_type) ? req.query.card_type : memberCardService.DEFAULT_CARD_TYPE; const card_count = (req.query.card_count) ? req.query.card_count : memberCardService.DEFAULT_CARD_COUNT; - //const surveyCards = await memberCardService.getMemberSurveyCards(member_id); + const surveyCards = await memberCardService(this).getMemberSurveyCards(member.id); //console.log(surveyCards); - console.log("card_type:", card_type); - const member = await this.getProfile(req); + //console.log("card_type:", card_type); const cards = await memberCardService(this).getMemberCardsByType(member, parseInt(card_type), card_count); - //console.log("member cards",cards); + return cards; + }, + + async loadSavedCards(req) { + var memberId = req.user.id; + const cards = await memberCardService(this).getSavedCards(memberId); + + console.log('cards', cards) return cards; }