This commit is contained in:
vinay 2024-01-19 10:42:50 +05:30
parent 20f6abf3b7
commit 043cddcaa0
4 changed files with 79 additions and 35 deletions

View File

@ -5,14 +5,14 @@ Authorization: {{auth-token}}
{
"data": {
"number": "KA01HD6667",
"number": "KA01HD6677",
"owner": "gowthaman"
},
"uniqueIdentifier": ""
}
### create row
POST http://localhost:9001/api/vendor
POST http://localhost:9001/api/vendor/po
Content-Type: application/json
Authorization: {{auth-token}}
@ -58,7 +58,7 @@ Authorization: Bearer {{auth-token}}
### query row
POST http://localhost:9001/api/vehicle/query
Content-Type: application/json
Authorization: set-auth-token
Authorization: {{set-auth-token}}
{
"sql": "select sys_pk, tenant_id, deleted_on, deleted_by, deleted, version, created_at, modified_at, created_by, modified_by, data, tags, comments, unique_identifier, entity_name from data_model where data ->> 'number' = :number",
@ -94,5 +94,41 @@ DELETE http://localhost:9001/api/vehicle/KA01HD6667
Authorization: {{auth-token}}
### get po for id
GET http://localhost:9001/api/vendor/po/12345
GET http://localhost:9001/api/vendor/product
Authorization: {{auth-token}}
### get product for id
GET http://localhost:9001/api/vendor/product/6
Authorization: {{auth-token}}
### get row
GET http://localhost:9001/api/vendor/product/7
Authorization: Bearer {{auth-token}}
### create product
POST http://localhost:9001/api/vendor/product
Content-Type: application/json
Authorization: {{auth-token}}
{
"name": "Shirt",
"description": "White Shirt",
"hsnCode": "WSM1XL"
}
### update field
PATCH http://localhost:9001/api/vendor/product/11
Content-Type: application/json
Authorization: {{auth-token}}
### upate a row
PUT http://localhost:9001/api/vendor/product/11
Content-Type: application/json
Authorization: {{auth-token}}
### delete a row
DELETE http://localhost:9001/api/vendor/product/2
Authorization: {{auth-token}}

View File

@ -6,6 +6,7 @@ import com.restapi.config.AppConfig.Companion.appConfig
import com.restapi.config.Auth.validateAuthToken
import com.restapi.controllers.*
import com.restapi.domain.DataNotFoundException
import com.restapi.domain.Product
import com.restapi.domain.Session
import com.restapi.domain.Session.currentTenant
import com.restapi.domain.Session.currentUser
@ -135,10 +136,12 @@ fun main(args: Array<String>) {
delete("/{id}", Quotation::delete, Roles(Role.Explicit(listOf("ROLE_QUOTE_CREATE", "ROLE_ADMIN"))))
}
path("/product"){
post("", Product::create, Roles(Role.Explicit(listOf("ROLE_PRODUCT_CREATE", "ROLE_ADMIN"))))
get("/{id}", Product::get, Roles(Role.Explicit(listOf("ROLE_DOC_VIEW", "ROLE_ADMIN", "ROLE_PRODUCT_CREATE"))))
delete("{id}", Product::delete, Roles(Role.Explicit(listOf("ROLE_PRODUCT_CREATE", "ROLE_ADMIN"))))
get("/doc/{id}", Product::getDoc, Roles(Role.Explicit(listOf("ROLE_ADMIN", "ROLE_VIEW_DOC"))))
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"))))
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"))))
delete("/{id}", ProductCtrl::delete, Roles(Role.Explicit(listOf("ROLE_PRODUCT_DELETE", "ROLE_ADMIN"))))
get("") {ctx -> ctx.json(Session.database.find(Product::class.java).findList())}
}
path("/doc"){
post("", Document::create, Roles(Role.Explicit(listOf("ROLE_DOC_CREATE", "ROLE_ADMIN"))))

View File

@ -6,6 +6,7 @@ import com.fasterxml.jackson.databind.JsonDeserializer
import com.fasterxml.jackson.databind.JsonNode
import com.fasterxml.jackson.databind.annotation.JsonDeserialize
import com.restapi.domain.*
import com.restapi.domain.Product
import com.restapi.domain.PurchaseOrder
import com.restapi.domain.Quotation
import com.restapi.domain.Session.currentUser
@ -411,6 +412,33 @@ object PurchaseOrder {
}
}
object ProductCtrl {
fun get(ctx :Context){
val id = ctx.pathParam("id")
val product = database.find(Product::class.java, id) ?: throw NotFoundResponse("Product not found for $id")
ctx.json(product)
}
fun create(ctx :Context){
val product = ctx.bodyAsClass<Product>()
database.save(product)
}
fun delete(ctx: Context) {
val id = ctx.pathParam("id")
val product = database.delete(Product::class.java, id)
}
fun patch(ctx: Context) {
}
fun update(ctx: Context) {
val id = ctx.pathParam("id")
}
}
object Quotation {
fun get(ctx :Context){
val id = ctx.pathParam("id")
@ -458,30 +486,6 @@ object Quotation {
ctx.json(rfq)
}
}
object Product {
fun get(ctx :Context){
val id = ctx.pathParam("id")
val product = database.find(Product::class.java, id) ?: throw NotFoundResponse("product nor found for id $id")
ctx.json(product)
}
fun create(ctx :Context){
val product = ctx.bodyAsClass<Product>()
database.save(product)
ctx.result("product created")
}
fun update(ctx :Context){
}
fun delete(ctx: Context){
val id = ctx.pathParam(("id"))
val product = database.find(Product::class.java, id) ?:throw NotFoundResponse("product not found for id $id")
//product.delete()
ctx.result("product with id $id deleted")
}
fun getDoc(ctx :Context){
}
}
object Document {
fun get(ctx :Context){
val id = ctx.pathParam("id")

View File

@ -275,6 +275,7 @@ enum class UOM {
}
@Entity
open class Product :BaseTenantModel() {
var id: Int? = null
var name :String = ""
var description :String = ""
var hsnCode :String = ""