UNPKG

corporate-frontend-mithril

Version:

Corporate frontend MithrilJS modules

39 lines (32 loc) 1.17 kB
const ArtsConstant= require('./../constant/arts-constant'); const stream= require('mithril/stream'); const qs= require('query-string'); const FPO= require('fpo'); const _= require('lodash'); let resultStream = stream(); let queryStringFn = function({props}) { return function(obj) { return qs.stringify(FPO.pick({v:obj, props})); }; }; let getUnitListQuery = queryStringFn({props: [ArtsConstant.kEY_DEPARTMENT, ArtsConstant.KEY_LEVEL]}); let fetchUnitList = function({obj}) { resultStream(ArtsConstant.LOADING_RESULT); m.redraw(); fetch(`${ArtsConstant.ARTS_UOS_API}?allUOS&${getUnitListQuery(obj)}`) .then( response => response.json()) .then((result)=> { let semester = obj[ArtsConstant.KEY_SEMESTER]; let data = result && result.data ? FPO.filterIn({ fn: ({v})=> semester ? Object.is(v.Period, semester) : true, arr: result.data, }) : ArtsConstant.NO_RESULT; if(_.isEmpty(data)) data = ArtsConstant.NO_RESULT; resultStream(data); m.redraw(); }); }; module.exports = { resultStream, fetchUnitList, };