|
|
- require "kemal"
- require "../*"
- require "io"
- require "file"
- require "math"
- require "exception"
- require "crypto/bcrypt/password"
- require "dir"
- require "uuid"
- require "uuid/json"
- require "kemal/param_parser"
- require "../../config"
-
- get "/products" do |context|
- ret = Array(Product).new
- path = Dir.new(Statics.data_path+"products")
- sent = 0
- skipped = 0
-
- skip, limit = Statics.extract_skip_info context
-
- path.each do |filename|
- if(sent<limit)
- begin
- if filename.char_at(0)!='.'
- if(skipped<skip)
- skipped+=1
- else
- ret.push Product.from_json File.read Statics.data_path+"products/"+filename
- sent+=1;
- end
- end
- rescue exception
-
- end
- end
- end
- ret.to_json
- end
-
- get "/products/:id" do |context|
- begin
- ret = Product.from_json File.read Statics.data_path+"products/"+context.params.url["id"]
- rescue ex
- halt context, status_code: 404, response: ex.to_s
- end
- ret.to_json
- end
-
-
- post "/products" do |context|
- user : User
- begin
- user = authenticate_admin!(context.request.headers["user"],UUID.new(context.request.headers["api_token"]))
- rescue ex
- halt context, status_code: 403, response: ex.to_s
- end
- product = Product.from_json(context.request.body.not_nil!).not_nil!
- File.write Statics.data_path+"products/"+product.id.to_s,product.to_json
- "OK".to_json
- end
|