yusmar пре 4 година
родитељ
комит
572b6a4179
9 измењених фајлова са 137 додато и 34 уклоњено
  1. +14
    -11
      api/dealer/dealer.js
  2. +23
    -1
      api/product/product.js
  3. +0
    -9
      components/Header/HeaderLinks.js
  4. +1
    -1
      pages-sections/yamaha/product/product.js
  5. +10
    -7
      pages-sections/yamaha/product/product_details.js
  6. +41
    -0
      pages/api/auth/login.js
  7. +36
    -0
      pages/api/auth/logout.js
  8. +1
    -1
      pages/yamaha/home.js
  9. +11
    -4
      pages/yamaha/product/product_detail.js

+ 14
- 11
api/dealer/dealer.js Прегледај датотеку

@@ -24,25 +24,28 @@ async function GetDealers(filter, token="") {
return res;
}

async function GetHomeDealer(token="") {
async function GetHomeDealer(token="", start = 0) {
var res = await apollo.query(
`
query{
dealers{
query($start: Int!) {
dealers(limit:6,start:$start){
id
name
kota_dealer
address
telp
email
location
name
kota_dealer
address
telp
email
location
img{
url
}
}
}
`,
token
token,
{
start: start,
}
);
return res;
}
@@ -50,4 +53,4 @@ async function GetHomeDealer(token="") {
module.exports = {
GetDealers: GetDealers,
GetHomeDealer: GetHomeDealer,
};
};

+ 23
- 1
api/product/product.js Прегледај датотеку

@@ -11,7 +11,8 @@ async function GetDetailProduct(id, token = "") {
price
price1
price2
product_otrs{
product_otrs {
id
name
price
}
@@ -75,6 +76,26 @@ async function GetDetailProduct(id, token = "") {
return res;
}

async function GetProductImgColor(id, token = "") {
var res = await apollo.query(
`
query($input: ID!) {
productImageColors(where:{id:$input}) {
id
name
img{
url
}
}
}
`,
token, {
"input": id
}
);
return res;
}

async function GetProduct(token = "") {
var res = await apollo.query(
`
@@ -311,6 +332,7 @@ async function GetProductHino(token = "") {

module.exports = {

GetProductImgColor: GetProductImgColor,
GetProduct: GetProduct,

//yamaha


+ 0
- 9
components/Header/HeaderLinks.js Прегледај датотеку

@@ -154,15 +154,6 @@ export default function HeaderLinks({ username, ...props }) {
</Button>
</ListItem>
<ListItem className={classes.listItem} style={{ marginTop: "10px" }}>
<Button
href="/yamaha/order/order"
color="transparent"
className={classes.navLink}
>
<Chart className={classes.icons} />
</Button>
</ListItem>
<ListItem className={classes.listItem} style={{ marginTop: "10px" }}>
{!username || username == "" ? (
<Button
href="/yamaha/login"


+ 1
- 1
pages-sections/yamaha/product/product.js Прегледај датотеку

@@ -29,7 +29,7 @@ const DataProduct = function ({ backend, maxi, matic, naked, sport, offroad, mop
<div style={{padding: "20px", marginTop:"-40px"}}>
<Card className={classes.textCenter} align="center" style={{width:"300px"}}>
<CardBody>
<div style={{padding:"10px"}}>
<div>
<img style={{ width: "200px", display: "block" }} src={`${backend}${data.img[0]["url"]}`} className={navImageClasses}
/>
<div align="center">


+ 10
- 7
pages-sections/yamaha/product/product_details.js Прегледај датотеку

@@ -24,7 +24,6 @@ import Carousel from "react-slick";
const useStyles = makeStyles(styles);

const DataProduct = function ({ backend, detailproduct, ...props }) {
console.log(detailproduct);
const classes = useStyles();
const { ...rest } = props;
const imageClasses = classNames(
@@ -35,7 +34,7 @@ const DataProduct = function ({ backend, detailproduct, ...props }) {
const settings = {
dots: true,
infinite: true,
speed: 500,
speed: 1000,
slidesToShow: 1,
slidesToScroll: 1,
autoplay: true,
@@ -48,6 +47,12 @@ const DataProduct = function ({ backend, detailproduct, ...props }) {
const [value2, setValue2] = React.useState(2);
const [value1, setValue1] = React.useState(1);
const navImageClasses = classNames(classes.imgRounded, classes.imgGallery);
const ProdcutImgColor = detailproduct.map((data) => {
return (
<div>
</div>
);
})
const Productdetails = detailproduct.map((data) => {
return (
<div>
@@ -64,6 +69,8 @@ const DataProduct = function ({ backend, detailproduct, ...props }) {
<img src={`${backend}${data.img[1]["url"]}`}/>
<img src={`${backend}${data.img[2]["url"]}`}/>
<img src={`${backend}${data.img[3]["url"]}`}/>
<img src={`${backend}${data.img[4]["url"]}`}/>
<img src={`${backend}${data.img[5]["url"]}`}/>
</Carousel>
</div>
<div align="center">
@@ -137,7 +144,7 @@ const DataProduct = function ({ backend, detailproduct, ...props }) {
<Rating name="read-only" value={value} readOnly/>
<div style={{marginTop:"-20px"}}>
<h3><b>
<NumberFormat value={data.price1} displayType={'text'} thousandSeparator={true} prefix={'Rp.'} /> s/d <NumberFormat value={data.price2} displayType={'text'} thousandSeparator={true} prefix={'Rp.'} />
<NumberFormat value={data.price} displayType={'text'} thousandSeparator={true} prefix={'Rp.'} /> s/d <NumberFormat value={data.price2} displayType={'text'} thousandSeparator={true} prefix={'Rp.'} />
</b></h3>
</div><br/>
<CustomTabs
@@ -191,8 +198,6 @@ const DataProduct = function ({ backend, detailproduct, ...props }) {
/>
</Grid>
</GridContainer>
<GridContainer justify="center">
<GridItem>
<NavPills
color="primary"
align="center"
@@ -424,8 +429,6 @@ const DataProduct = function ({ backend, detailproduct, ...props }) {
},
]}
/>
</GridItem>
</GridContainer>
</div>
);
})


+ 41
- 0
pages/api/auth/login.js Прегледај датотеку

@@ -0,0 +1,41 @@
import auth from "../../../api/auth/auth";
import Cookies from "cookies";

export default async function handler(req, res) {
if (req.method == "POST") {
const cookies = new Cookies(req, res);
var email = req.body.email;
var pass = req.body.pass;
var partner = req.body.partner;
var resp = await auth.login(partner, email, pass);
var login = resp["res"];
// console.log(login["DATA"]);
if (login["STATUS"] == 0) {
return res
.status(400)
.send(login["DATA"] + ". Check user and password again.");
}
var userObj = resp["cookies"]["user"];
await cookies.set("myToken", resp["cookies"]["token"], {
httpOnly: true, // true by default
});
await cookies.set("user", JSON.stringify(userObj), {
httpOnly: true, // true by default
});
let sessionId = userObj["partners_login_states"].filter(
(i) =>
i.business_partner &&
i.business_partner.name.toUpperCase() == partner.toUpperCase()
);
if (sessionId.length == 0) return res.status(400).send("Login Failed");
return res.status(200).send("Success Login");
// res.status(200).json(login);
// res.writeHead(200, {
// Location: "../home",
// //add other headers here...
// });
// res.end();
} else {
return res.status(400).send("NOT FOUND");
}
}

+ 36
- 0
pages/api/auth/logout.js Прегледај датотеку

@@ -0,0 +1,36 @@
import auth from "../../../api/auth/auth";
import Cookies from "cookies";

export default async function handler(req, res) {
if (req.method == "POST") {
const cookies = new Cookies(req, res);
const partner = req.body.p;
var user = await cookies.get("user");
var token = await cookies.get("myToken");
var userObj = user ? JSON.parse(user) : null;
let sessionId = userObj["partners_login_states"].filter(
(i) =>
i.business_partner &&
i.business_partner.name.toUpperCase() == partner.toUpperCase()
);
sessionId.forEach(async (i) => {
var resp = await auth.logout(i.id, token);
if (resp["STATUS"] == 0) {
return res.status(400).send(resp["DATA"]);
}
});
userObj["partners_login_states"] = userObj[
"partners_login_states"
].filter(
(i) =>
i.business_partner &&
i.business_partner.name.toUpperCase() != partner.toUpperCase()
);
await cookies.set("user", JSON.stringify(userObj), {
httpOnly: true, // true by default
});
return res.status(200).send("Success Logout");
} else {
return res.status(400).send("NOT FOUND");
}
}

+ 1
- 1
pages/yamaha/home.js Прегледај датотеку

@@ -9,7 +9,7 @@ import styles from "assets/jss/nextjs-material-kit/pages/components.js";
import Footer from "components/Footer/Footer.js";

import Getcarousels from "api/home/carousel.js";
import Getdealer from "../../api/dealer/dealer.js";
import Getdealer from "api/dealer/dealer.js";
import DataSnackbarContent from "pages-sections/yamaha/snackbar.js";
import DataCarousel from "pages-sections/yamaha/home/carousel.js";
import DataService from "pages-sections/yamaha/home/service.js";


+ 11
- 4
pages/yamaha/product/product_detail.js Прегледај датотеку

@@ -13,7 +13,7 @@ import Cookies from "cookies";

const useStyles = makeStyles(styles);

const ProductDetails = function ({ backend, detailproduct, user, ...props }) {
const ProductDetails = function ({ backend, detailproduct, user, color, ...props }) {
const classes = useStyles();
const { ...rest } = props;
return (
@@ -30,7 +30,7 @@ const ProductDetails = function ({ backend, detailproduct, user, ...props }) {
/>
<Parallax image={require("assets/img/Promotion_2-1.jpg")} width="200px"/>
<div className={classNames(classes.main, classes.mainRaised)}>
<ProductDetail detailproduct={detailproduct} backend={backend}/>
<ProductDetail detailproduct={detailproduct} backend={backend} color={color}/>
</div>
<Footer />
</div>
@@ -42,6 +42,8 @@ export default ProductDetails;
export async function getServerSideProps(context) {
var {query} = context;
var detailproduct = [];
var color = [];

const backend = process.env.BACKEND_SERVER_URI;

var { req, resp } = context;
@@ -59,12 +61,17 @@ export async function getServerSideProps(context) {
if (sessionId.length != 0) user = userObj["username"];
}

var res = await GetDetailproduct.GetProductImgColor(query.s||0);
if (res["STATUS"] === 1) {
color = res["DATA"]["productImageColors"];
}

var res = await GetDetailproduct.GetDetailProduct(query.s||0);
if (res["STATUS"] === 1) {
detailproduct = res["DATA"]["products"];
}

return {
props: { detailproduct, backend, user }, // will be passed to the page component as props
props: { detailproduct, backend, color, user }, // will be passed to the page component as props
};
}
}

Loading…
Откажи
Сачувај