address.js 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. import { DATA_MODEL_KEY } from '../../config/model';
  2. import { getAll, model } from '../_utils/model';
  3. import { cloudbaseTemplateConfig } from '../../config/index';
  4. import { DELIVERY_INFO, createId } from '../cloudbaseMock/index';
  5. const DELIVERY_INFO_MODEL_KEY = DATA_MODEL_KEY.DELIVERY_INFO;
  6. export async function getAllAddress() {
  7. if (cloudbaseTemplateConfig.useMock) {
  8. return DELIVERY_INFO;
  9. }
  10. return getAll({
  11. name: DELIVERY_INFO_MODEL_KEY,
  12. select: {
  13. _id: true,
  14. phone: true,
  15. address: true,
  16. name: true,
  17. },
  18. });
  19. }
  20. /**
  21. *
  22. * @param {{
  23. * name: String,
  24. * address: String,
  25. * phone: String,
  26. * }} param0
  27. * @returns
  28. */
  29. export function createAddress({ name, address, phone }) {
  30. if (cloudbaseTemplateConfig.useMock) {
  31. DELIVERY_INFO.push({
  32. address,
  33. name,
  34. phone,
  35. _id: createId(),
  36. });
  37. return;
  38. }
  39. return model()[DELIVERY_INFO_MODEL_KEY].create({
  40. data: {
  41. name,
  42. address,
  43. phone,
  44. },
  45. });
  46. }
  47. /**
  48. *
  49. * @param {{
  50. * name,
  51. * address,
  52. * phone,
  53. * _id
  54. * }} param0
  55. */
  56. export function updateAddress(props) {
  57. const { name, address, phone, _id } = props;
  58. if (cloudbaseTemplateConfig.useMock) {
  59. Object.assign(
  60. DELIVERY_INFO.find((x) => x._id === _id),
  61. props,
  62. );
  63. return;
  64. }
  65. return model()[DELIVERY_INFO_MODEL_KEY].update({
  66. data: {
  67. name,
  68. address,
  69. phone,
  70. },
  71. filter: {
  72. where: {
  73. _id: { $eq: _id },
  74. },
  75. },
  76. });
  77. }
  78. export function deleteAddress({ id }) {
  79. if (cloudbaseTemplateConfig.useMock) {
  80. DELIVERY_INFO.splice(
  81. DELIVERY_INFO.findIndex((x) => x._id === id),
  82. 1,
  83. );
  84. return;
  85. }
  86. return model()[DELIVERY_INFO_MODEL_KEY].delete({
  87. filter: {
  88. where: {
  89. _id: {
  90. $eq: id,
  91. },
  92. },
  93. },
  94. });
  95. }
  96. export async function getAddress({ id }) {
  97. return (
  98. await model()[DELIVERY_INFO_MODEL_KEY].get({
  99. filter: {
  100. where: {
  101. _id: {
  102. $eq: id,
  103. },
  104. },
  105. },
  106. })
  107. ).data;
  108. }