コード例 #1
0
ファイル: monster.js プロジェクト: RoOLeary/react-ultimate
 function handler(req, res, cb) {
   let item = parseAs(Monster, merge(makeMonster(), req.body));
   DB[item.id] = item;
   let payload = {
     data: item,
   };
   return res.status(201).send(payload); // Status: created
 }
コード例 #2
0
 .then(response => {
   if (response.status.startsWith("2")) {
     let data = response.data.data;
     let item = parseAs(Employee, data);
     itemsCursor.set(id, item);
     return item;
   } else {
     return undefined;
   }
 });
コード例 #3
0
ファイル: robot.js プロジェクト: RoOLeary/react-ultimate
 .then(response => {
   if (response.status.startsWith("2")) {
     if (response.status == "200" && response.data.data) {
       item = itemsCursor.set(id, parseAs(Robot, response.data.data));
     }
     return item;
   } else {
     itemsCursor.set(id, oldItem);
     throw Error(response.statusText);
   }
 });
コード例 #4
0
 function handler(req, res, cb) {
   let oldItem = DB[req.params.id];
   let newItem = parseAs(Project, req.body);
   DB[newItem.id] = newItem;
   if (oldItem) {
     return res.status(204).send(); // Status: no-content
   } else {
     let payload = {
       data: newItem,
     };
     return res.status(201).send(payload); // Status: created
   }
 }
コード例 #5
0
 .then(response => {
   let {total, items, pagination} = dataCursor.get();
   if (response.status.startsWith("2")) {
     if (response.status == "200" && response.data.data) {
       item = itemsCursor.set(id, parseAs(uxEng, response.data.data));
     }
     return item;
   } else {
     itemsCursor.unset(id);
     dataCursor.apply("total", t => t ? t - 1 : t);
     dataCursor.apply("pagination", ps => reject(id => id == item.id, ps));
     throw Error(response.statusText);
   }
 });
コード例 #6
0
// Object -> Maybe uxEng
export default function addItem(data) {
  console.debug(api.plural + `.addItem(...)`);

  data = assoc("id", data.id || UUID.v4(), data);
  let item = parseAs(uxEng, data);
  let id = item.id;

  // Optimistic update
  dataCursor.apply("total", t => t + 1);
  itemsCursor.set(id, item);

  if (dataCursor.get("fullLoad")) {
    // Inject new id at whatever place
    dataCursor.apply("pagination", ps => append(id, ps));
  } else {
    // Pagination is messed up, do reset
    dataCursor.merge({
      total: 0,
      pagination: [],
    });
  }

  if (urlCursor.get("route") == api.singular + "-add") {
    setImmediate(() => {
      router.transitionTo(api.singular + "-detail", {id: item.id});
    });
  }

  return ajax.put(api.itemUrl.replace(":id", id), item)
    .then(response => {
      let {total, items, pagination} = dataCursor.get();
      if (response.status.startsWith("2")) {
        if (response.status == "200" && response.data.data) {
          item = itemsCursor.set(id, parseAs(uxEng, response.data.data));
        }
        return item;
      } else {
        itemsCursor.unset(id);
        dataCursor.apply("total", t => t ? t - 1 : t);
        dataCursor.apply("pagination", ps => reject(id => id == item.id, ps));
        throw Error(response.statusText);
      }
    });
}
コード例 #7
0
ファイル: robot.js プロジェクト: RoOLeary/react-ultimate
// Object -> Promise Robot
export default function editItem(data) {
  console.debug(api.plural + `.editItem(${data.id})`);

  let item = parseAs(Robot, data);
  let id = item.id;

  // Optimistic update
  let oldItem = itemsCursor.get(id);
  itemsCursor.set(id, item);

  return ajax.put(api.itemUrl.replace(":id", id), item)
    .then(response => {
      if (response.status.startsWith("2")) {
        if (response.status == "200" && response.data.data) {
          item = itemsCursor.set(id, parseAs(Robot, response.data.data));
        }
        return item;
      } else {
        itemsCursor.set(id, oldItem);
        throw Error(response.statusText);
      }
    });
}
コード例 #8
0
 it("should respond with valid body", function () {
   assert(body.data);
   assertEq(parseAs(Employee, body.data), model);
 });
コード例 #9
0
 let newItemsArray = map(m => parseAs(softEng, m), response.data.data);
コード例 #10
0
ファイル: monster.js プロジェクト: RoOLeary/react-ultimate
 let newItemsArray = map(m => parseAs(Monster, m), response.data.data);
コード例 #11
0
 it("should respond with valid body", function () {
   expect(body).to.have.property("data");
   expect(parseAs(uxEng, body.data)).eql(item);
 });
コード例 #12
0
 let newItemsArray = map(data => parseAs(uxEng, data), response.data.data);