/** * Created by Zhong on 2017/9/28. */ import optionsModel from '../models/schemas'; class OptionsDao { async getOptions(user_id, compilation_id){ let rst = await optionsModel.find({user_id: user_id, compilation_id: compilation_id}); rst = rst.length > 0 && typeof rst[0].options !== 'undefined' ? rst[0].options : null; return rst; } async getOptionsByType(user_id, compilation_id, optsType){ let rst = await optionsModel.find({user_id: user_id, compilation_id: compilation_id}); if(rst.length > 0){ let opts = rst[0].options; for(let i = 0, len = opts.length; i < len; i++){ if(opts[i].type === optsType){ return opts[i]; } } } return null; } async saveOptions(user_id, compilation_id, opsType, opts){ let optionsData = await optionsModel.find({user_id: user_id, compilation_id: compilation_id}); if(optionsData.length === 0){ await optionsModel.create({user_id: user_id, compilation_id: compilation_id, options: [{type: opsType, opts: opts}]}); } await optionsModel.update({user_id: user_id, compilation_id: compilation_id, 'options.type': opsType}, {$set: {'options.$.opts': opts}}); let rst = await optionsModel.find({user_id: user_id, compilation_id: compilation_id}); return rst; } } export default OptionsDao;