Skip to content

Commit

Permalink
chg: schema related changes for product
Browse files Browse the repository at this point in the history
  • Loading branch information
wemakshaychavan committed Feb 24, 2023
1 parent 63a4a87 commit eba5b9b
Show file tree
Hide file tree
Showing 4 changed files with 219 additions and 33 deletions.
49 changes: 24 additions & 25 deletions seller-app-api/services/product.service.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,7 @@ import {ConfirmRequest, InitRequest, SelectRequest} from "../models";
import logger from "../lib/logger";

var config = require('../lib/config');
const strapiAccessToken = config.get("strapi").apiToken
const strapiURI = config.get("strapi").serverUrl
const serverUrl = config.get("seller").serverUrl
const BPP_ID = config.get("sellerConfig").BPP_ID
const BPP_URI = config.get("sellerConfig").BPP_URI

Expand All @@ -15,8 +14,8 @@ class ProductService {

let headers = {};
let httpRequest = new HttpRequest(
strapiURI,
'/api/products',
serverUrl,
'/api/v1/products/search',
'get',
{},
headers
Expand All @@ -37,8 +36,8 @@ class ProductService {
let headers = {};

let httpRequest = new HttpRequest(
strapiURI,
`/api/products?filters[name][$eq]=${searchProduct}`, //TODO: allow $like query
serverUrl,
`/api/v1/products/search`, //TODO: allow $like query
'get',
{},
headers
Expand Down Expand Up @@ -73,7 +72,7 @@ class ProductService {

let qouteItemsDetails = {}
let httpRequest = new HttpRequest(
strapiURI,
serverUrl,
`/api/products/${item.id}`,
'get',
{},
Expand Down Expand Up @@ -186,7 +185,7 @@ class ProductService {

let qouteItemsDetails = {}
let httpRequest = new HttpRequest(
strapiURI,
serverUrl,
`/api/products/${item.id}`,
'get',
{},
Expand Down Expand Up @@ -259,7 +258,7 @@ class ProductService {

let qouteItemsDetails = {}
let httpRequest = new HttpRequest(
strapiURI,
serverUrl,
`/api/products/${item.id}`,
'get',
{},
Expand Down Expand Up @@ -317,7 +316,7 @@ class ProductService {

}
let httpRequest = new HttpRequest(
strapiURI,
serverUrl,
`/api/order-items`,
'POST',
{data: productItems},
Expand All @@ -337,7 +336,7 @@ class ProductService {

let confirm = {}
let httpRequest = new HttpRequest(
strapiURI,
serverUrl,
`/api/orders`,
'POST',
{data: confirmData},
Expand Down Expand Up @@ -367,7 +366,7 @@ class ProductService {
return 0/3;

let httpRequest = new HttpRequest(
strapiURI,
serverUrl,
`/api/products/${id}`,
'get',
{},
Expand All @@ -385,7 +384,7 @@ class ProductService {
// headers['Authorization'] = `Bearer ${strapiAccessToken}`;

let httpRequest = new HttpRequest(
strapiURI,
serverUrl,
`/api/orders?populate[0]=order_items&populate[1]=order_items.product`,
'get',
{},
Expand All @@ -403,7 +402,7 @@ class ProductService {
// headers['Authorization'] = `Bearer ${strapiAccessToken}`;

let httpRequest = new HttpRequest(
strapiURI,
serverUrl,
`/api/orders/${id}?populate[0]=order_items&populate[1]=order_items.product`,
'get',
{},
Expand All @@ -422,7 +421,7 @@ class ProductService {

console.log(data)
let httpRequest = new HttpRequest(
strapiURI,
serverUrl,
`/api/products/${id}`,
'put',
{data: data},
Expand All @@ -442,7 +441,7 @@ class ProductService {
console.log(data);

let httpRequest = new HttpRequest(
strapiURI,
serverUrl,
'/api/products',
'post',
{data},
Expand Down Expand Up @@ -477,7 +476,7 @@ class ProductService {

let confirm = {}
let httpRequest = new HttpRequest(
strapiURI,
serverUrl,
`/api/orders?filters[order_id][$eq]=${statusRequest.message.order_id}`,
'GET',
{},
Expand All @@ -494,7 +493,7 @@ class ProductService {

//update order level state
httpRequest = new HttpRequest(
strapiURI,
serverUrl,
`/api/orders/${result.data.data[0].id}`,
'PUT',
{data:updateOrder},
Expand Down Expand Up @@ -533,7 +532,7 @@ class ProductService {

let confirm = {}
let httpRequest = new HttpRequest(
strapiURI,
serverUrl,
`/api/orders?filters[order_id][$eq]=${cancelRequest.message.order_id}`,
'GET',
{},
Expand All @@ -550,7 +549,7 @@ class ProductService {

//update order level state
httpRequest = new HttpRequest(
strapiURI,
serverUrl,
`/api/orders/${result.data.data[0].id}`,
'PUT',
{data:updateOrder},
Expand Down Expand Up @@ -611,7 +610,7 @@ class ProductService {

let qouteItemsDetails = {}
let httpRequest = new HttpRequest(
strapiURI,
serverUrl,
`/api/products/${item.id}`,
'get',
{},
Expand Down Expand Up @@ -670,7 +669,7 @@ class ProductService {
value: item.price.value
}
let httpRequest = new HttpRequest(
strapiURI,
serverUrl,
`/api/order-items`,
'POST',
{data: productItems},
Expand All @@ -692,7 +691,7 @@ class ProductService {

let confirm = {}
let httpRequest = new HttpRequest(
strapiURI,
serverUrl,
`/api/orders`,
'POST',
{data: confirmData},
Expand Down Expand Up @@ -761,7 +760,7 @@ class ProductService {

let qouteItemsDetails = {}
let httpRequest = new HttpRequest(
strapiURI,
serverUrl,
`/api/products/${item.id}`,
'get',
{},
Expand Down Expand Up @@ -873,7 +872,7 @@ class ProductService {

let qouteItemsDetails = {}
let httpRequest = new HttpRequest(
strapiURI,
serverUrl,
`/api/products/${item.id}`,
'get',
{},
Expand Down
31 changes: 23 additions & 8 deletions seller-app-api/utils/schemaMapping.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,23 +12,23 @@ exports.getProducts = async (data) => {
let item = {
"id": items.id,
"descriptor": {
"name": items.attributes.name,
"name": items.productName,
"symbol": "https://awstoazures3.blob.core.windows.net/signcatch-master/production/products/images/10997/1629350300589Oshon-Coffee-Star-Jar-jpg",
"short_desc": items.attributes.description,
"long_desc": items.attributes.description,
"short_desc": items.description,
"long_desc": items.longDescription,
"images": [
"https://awstoazures3.blob.core.windows.net/signcatch-master/production/products/images/10997/1629350300589Oshon-Coffee-Star-Jar-jpg"
]
},
"price": {
"currency": "INR",
"value": items.attributes.price
"value": items.MRP
},
"location_id": "8fdd9880-3d0c-444a-8038-fb98ec65f7b6",
"location_id": "8fdd9880-3d0c-444a-8038-fb98ec65f7b6", //TODO: FIX
"matched": true,
"@ondc/org/returnable": items.attributes?.isReturnable??false,
"@ondc/org/cancellable": items.attributes?.isCancellable??false,
"@ondc/org/available_on_cod": true,
"@ondc/org/returnable": items.isReturnable??false,
"@ondc/org/cancellable": items.isCancellable??false,
"@ondc/org/available_on_cod": items.availableOnCod,
"@ondc/org/time_to_ship": "PT48H"
}
productAvailable.push(item)
Expand All @@ -44,6 +44,21 @@ exports.getProducts = async (data) => {
"context": {...context},
"message": {
"catalog": {
"bpp/fulfillments":
[
{
"id":"1",
"type":"Delivery"
},
{
"id":"2",
"type":"Self-Pickup"
},
{
"id":"3",
"type":"Delivery and Self-Pickup"
}
],
"bpp/descriptor": {
"name": "Bech",
"symbol": "https://uploads-ssl.webflow.com/5f5b3175374e04e897cf2a3d/5f5b3175374e04ade4cf2b56_bechbrand.svg",
Expand Down
78 changes: 78 additions & 0 deletions seller/app/modules/product/v1/services/product.service.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
import { v1 as uuidv1 } from 'uuid';
import MESSAGES from '../../../../lib/utils/messages';
import Product from '../../models/product.model';
import {
NoRecordFoundError,
DuplicateRecordFoundError,
BadRequestParameterError,
} from '../../../../lib/errors';
import s3 from "../../../../lib/utils/s3Utils";

class ProductService {
async create(data) {
try {
let query = {};

const organizationExist = await Product.findOne({productName:data.productName});
if (organizationExist) {
throw new DuplicateRecordFoundError(MESSAGES.PRODUCT_ALREADY_EXISTS);
}
let product = new Product(data);
let savedProduct= await product.save();

return savedProduct;
} catch (err) {
console.log(`[ProductService] [create] Error in creating product ${data.organizationId}`,err);
throw err;
}
}

async list(params) {
try {
let query={};
if(params.name){
query.name = { $regex: params.name, $options: 'i' };
}
const data = await Product.find(query).sort({createdAt:1}).skip(params.offset).limit(params.limit);
const count = await Product.count(query)
let products={
count,
data
};
return products;
} catch (err) {
console.log('[ProductService] [getAll] Error in getting all organization ',err);
throw err;
}
}

async search(params) {
try {
let query={};

const data = await Product.find(query).sort({createdAt:1}).skip(params.offset).limit(params.limit);
const count = await Product.count(query)
let products={
count,
data
};
return products;
} catch (err) {
console.log('[ProductService] [getAll] Error in getting all from organization ',err);
throw err;
}
}

async get(organizationId) {
try {
let doc = await Product.findOne({_id:organizationId}).lean();
return doc;

} catch (err) {
console.log(`[OrganizationService] [get] Error in getting organization by id - ${organizationId}`,err);
throw err;
}
}

}
export default ProductService;
Loading

0 comments on commit eba5b9b

Please sign in to comment.