This commit is contained in:
vinay 2024-01-19 14:54:17 +05:30
parent 043cddcaa0
commit cb184dee3b
4 changed files with 29 additions and 18 deletions

View File

@ -98,7 +98,7 @@ GET http://localhost:9001/api/vendor/product
Authorization: {{auth-token}} Authorization: {{auth-token}}
### get product for id ### get product for id
GET http://localhost:9001/api/vendor/product/6 GET http://localhost:9001/api/vendor/product/7
Authorization: {{auth-token}} Authorization: {{auth-token}}
### get row ### get row
@ -112,8 +112,8 @@ Authorization: {{auth-token}}
{ {
"name": "Shirt", "name": "Shirt",
"description": "White Shirt", "description": "Black Shirt",
"hsnCode": "WSM1XL" "hsnCode": "BSM1XL"
} }

View File

@ -23,7 +23,6 @@ import io.javalin.http.UnauthorizedResponse
import io.javalin.http.util.NaiveRateLimit import io.javalin.http.util.NaiveRateLimit
import io.javalin.http.util.RateLimitUtil import io.javalin.http.util.RateLimitUtil
import io.javalin.json.JavalinJackson import io.javalin.json.JavalinJackson
import org.checkerframework.dataflow.qual.Pure
import org.jose4j.jwt.consumer.InvalidJwtException import org.jose4j.jwt.consumer.InvalidJwtException
import org.slf4j.LoggerFactory import org.slf4j.LoggerFactory
import java.security.MessageDigest import java.security.MessageDigest
@ -137,11 +136,11 @@ fun main(args: Array<String>) {
} }
path("/product"){ path("/product"){
post("", ProductCtrl::create, Roles(Role.Explicit(listOf("ROLE_PRODUCT_CREATE", "ROLE_ADMIN")))) post("", ProductCtrl::create, Roles(Role.Explicit(listOf("ROLE_PRODUCT_CREATE", "ROLE_ADMIN"))))
get("/{id}", ProductCtrl::get, Roles(Role.Explicit(listOf("ROLE_PRODUCT_VIEW", "ROLE_ADMIN")))) //get("/{hsnCode}", ProductCtrl::get, Roles(Role.Explicit(listOf("ROLE_PRODUCT_VIEW", "ROLE_ADMIN"))))
put("/{id}", ProductCtrl::update, Roles(Role.Explicit(listOf("ROLE_PRODUCT_UPDATE", "ROLE_ADMIN")))) put("/{id}", ProductCtrl::update, Roles(Role.Explicit(listOf("ROLE_PRODUCT_UPDATE", "ROLE_ADMIN"))))
patch("/{id}", ProductCtrl::patch, Roles(Role.Explicit(listOf("ROLE_PRODUCT_UPDATE", "ROLE_ADMIN")))) //patch("/{id}", ProductCtrl::patch, Roles(Role.Explicit(listOf("ROLE_PRODUCT_UPDATE", "ROLE_ADMIN"))))
delete("/{id}", ProductCtrl::delete, Roles(Role.Explicit(listOf("ROLE_PRODUCT_DELETE", "ROLE_ADMIN")))) delete("/{id}", ProductCtrl::delete, Roles(Role.Explicit(listOf("ROLE_PRODUCT_DELETE", "ROLE_ADMIN"))))
get("") {ctx -> ctx.json(Session.database.find(Product::class.java).findList())} get("", ProductCtrl::getAll, Roles(Role.Explicit(listOf("ROLE_PRODUCT_VIEW", "ROLE_ADMIN"))))
} }
path("/doc"){ path("/doc"){
post("", Document::create, Roles(Role.Explicit(listOf("ROLE_DOC_CREATE", "ROLE_ADMIN")))) post("", Document::create, Roles(Role.Explicit(listOf("ROLE_DOC_CREATE", "ROLE_ADMIN"))))
@ -152,9 +151,9 @@ fun main(args: Array<String>) {
delete("/{id}", Document::delete, Roles(Role.Explicit(listOf("ROLE_DOC_CREATE")))) delete("/{id}", Document::delete, Roles(Role.Explicit(listOf("ROLE_DOC_CREATE"))))
} }
path("/reqForQuote"){ path("/reqForQuote"){
post("", ReqForQuote::create, Roles(Role.Explicit(listOf("ROLE_RFQ_CREATE")))) post("", RequestForQuote::create, Roles(Role.Explicit(listOf("ROLE_RFQ_CREATE"))))
get("/{id}", ReqForQuote::get, Roles(Role.Explicit(listOf("ROLE_RFQ_CREATE", "ROLE_RFQ_VIEW")))) get("/{id}", RequestForQuote::get, Roles(Role.Explicit(listOf("ROLE_RFQ_CREATE", "ROLE_RFQ_VIEW"))))
put("/{id}", ReqForQuote::update, Roles(Role.Explicit(listOf("ROLE_RFQ_CREATE")))) put("/{id}", RequestForQuote::update, Roles(Role.Explicit(listOf("ROLE_RFQ_CREATE"))))
} }
} }
post("/script/database/{name}", Entities::executeStoredProcedure, Roles(adminRole, Role.DbOps)) post("/script/database/{name}", Entities::executeStoredProcedure, Roles(adminRole, Role.DbOps))

View File

@ -412,13 +412,25 @@ object PurchaseOrder {
} }
} }
data class ProductSearch(
var isSort: String? = null
)
object ProductCtrl { object ProductCtrl {
fun get(ctx :Context){ fun get(ctx :Context){
val id = ctx.pathParam("id") val hsnCode = ctx.pathParam("hsnCode")
val product = database.find(Product::class.java, id) ?: throw NotFoundResponse("Product not found for $id") val product = database.find(Product::class.java, hsnCode) ?: throw NotFoundResponse("Product not found for $hsnCode")
ctx.json(product) ctx.json(product)
} }
fun getAll(ctx: Context){
val productList = Session.database.find(Product::class.java)
.findList()
.sortedBy { it.hsnCode }
ctx.json(productList)
}
fun create(ctx :Context){ fun create(ctx :Context){
val product = ctx.bodyAsClass<Product>() val product = ctx.bodyAsClass<Product>()
database.save(product) database.save(product)
@ -479,7 +491,7 @@ object Quotation {
} }
fun reqForQuote(ctx :Context){ fun reqForQuote(ctx :Context){
val reqForQuoteNum = ctx.pathParam(("rfqNum")) val reqForQuoteNum = ctx.pathParam(("rfqNum"))
val rfq = database.find(ReqForQuote::class.java) val rfq = database.find(RequestForQuote::class.java)
.where() .where()
.eq("reqForQuoteNum", reqForQuoteNum) .eq("reqForQuoteNum", reqForQuoteNum)
?: throw NotFoundResponse("request for quote not found for this quotation") ?: throw NotFoundResponse("request for quote not found for this quotation")
@ -560,9 +572,9 @@ object Vendor {
ctx.result("rating changed") ctx.result("rating changed")
} }
} }
object ReqForQuote { object RequestForQuote {
fun create(ctx :Context) { fun create(ctx :Context) {
val rfq = ctx.bodyAsClass<com.restapi.domain.ReqForQuote>() val rfq = ctx.bodyAsClass<ReqForQuote>()
database.save(rfq) database.save(rfq)
//ctx.result("request for quote created") //ctx.result("request for quote created")
//ctx.json(rfq) //ctx.json(rfq)
@ -571,7 +583,7 @@ object ReqForQuote {
} }
fun get(ctx :Context){ fun get(ctx :Context){
val id = ctx.pathParam("id") val id = ctx.pathParam("id")
val rfq = database.find(com.restapi.domain.ReqForQuote::class.java, id) ?: throw NotFoundResponse("request for quote not found for id $id") val rfq = database.find(ReqForQuote::class.java, id) ?: throw NotFoundResponse("request for quote not found for id $id")
ctx.json(rfq) ctx.json(rfq)
} }
fun update(ctx :Context){ fun update(ctx :Context){

View File

@ -324,8 +324,8 @@ open class ReqForQuote :BaseTenantModel() {
var potentialVendors :List<Long>? = null var potentialVendors :List<Long>? = null
@Enumerated(EnumType.STRING) @Enumerated(EnumType.STRING)
var status :RFQStatus? = null var status :RFQStatus? = null
@DbArray // @DbArray
var docs :List<Document>? = null // var docs :List<Document>? = null
@DbJsonB @DbJsonB
var products :List<POProducts>? = null var products :List<POProducts>? = null
var reqForQuoteNum: String? = null var reqForQuoteNum: String? = null