Quick HTML forms.
``` npm install quick-form
An easy-to-use and quick form builder using the following React Material UI input components:
el-quick-form component
quick-form
quick form for react-wui
Quick and responsive simple forms for React
A library to create readable "multipart/form-data" streams. Can be used to submit forms and file uploads to other web applications.
Vue component to produce form dynamically based on a schema definition.
Lightweight React form hook with built-in validation and zod-like schema API
Pure-JS printf
A multipart/form-data encoded stream, helper for file upload.
use-form-reset hook from `@react-aria` utils
Performant, flexible and extensible forms library for React Hooks
Form tracking for Snowplow
Hooks for virtualizing scrollable elements in React
Encode FormData content into the multipart/form-data format
Simplify usage of Angular forms with Angular Material for common use cases.
A dynamic form builder that can generate complex forms based on JSON schema or user input.
View docs [here](https://radix-ui.com/primitives/docs/components/form).
React Hook Form validation resolvers: Yup, Joi, Superstruct, Zod, Vest, Class Validator, io-ts, Nope, computed-types, TypeBox, arktype, Typanion, Effect-TS and VineJS
a quick form to help you to build your query form
Powerful, type-safe forms for React.
Link Click tracking for Snowplow
Focus the first available field on a page
A client for using the Pushbullet API in Ruby. Built form their api documentation. https://docs.pushbullet.com/v10/#quick-start. This is an unofficial project.
Quick list of errors for displaying in one place. Sometimes you'd like to return errors at the top of the screen in a notice rather than around a form, for example if you have a particularly long form. Just a quick helper method to help with said cases.
Skins change styles of HTML elements such as body, links, form elements, headers, therefore they are best suited for quick prototyping with scaffolds.
Treequel is an LDAP toolkit for Ruby. It is intended to allow quick, easy access to LDAP directories in a manner consistent with LDAP's hierarchical, free-form nature. It's inspired by and modeled after [Sequel][sequel], a kick-ass database library. For more information on how to use it, check out the [manual](manual/index_md.html).
A gem that will pop up a modal with a form when you click on a textarea in which you want a stringified JSON object. Simply fill in the form's keys and values and click save, and it will populate the corresponding textarea with a stringified JSON object. Ideal for quick preparation of JSON payload params for POST requests.
Get the latest search results streaming to your console: $ tweettail railsconf rubysolo: protip: it helps to actually READ the error message. #railsconf voxxit: So, everyone, how is #railsconf coming? When is the big 3.0 announcement? JesseGoldberg: @GavinStark I don't have as much to chat about as you do while you are at RailsConf. wndxlori: Anyone else not eaten yet #railsconf zenmatt: Great dinner and coversation with @heroku at n9ne in the palms. #railsconf Adkron: Damn you #railsconf why can I not visit you this year. I'm missing all the gitjour goodness. pengwynn: Meeting a lot of great folks at the open gov hackathon at #railsconf #gov20 davidjrice: Enjoying ordering taxis to our hotel... "for the wynn!" #railsconf quick noms at stripburger then whiskeys at the stage door with ey ftw! cricketgeek: as pointed out by @jnewland at sushi this evening... http://pic.im/2LY #railsconf paulog: had fun at gilt groupe coctail party. props. #railsconf Amuse_Bouche: I hope my two favorite people in the world form an alliance! (Swoon) RT: @dhh Loved talking to @tferris at #railsconf. So much resonates. abie: At open gov BOF #railsconf matthewcarriere: running a saas bof was great... I hope it gets some more time this week. #railsconf jdar: @tullytully RT @dgou:for the benefit of people at #railsconf keynote, here is penelope trunk on tim ferris: http://bit.ly/b81E yorzi: Reading: "Rails 3 and the Real Secret to High Productivity: RailsConf 2009 - May 04 - 07, 2009, Las Vegas,NV" ( http://tinyurl.com/czmkxn ) Or let it sit there all day with the -f option (like "tail -f"): tweettail -f railsconf
# Quick Start The Owner API uses the JSON format, and must be accessed over a [secure connection](https://en.wikipedia.org/wiki/HTTPS). Let’s assume that the access token provided by your account manager is “TOKEN”. Here’s how to get the list of ids of all your invoices from the first week of August with a shell script: ```bash query="end_date=2018-08-08T00%3A00%3A00%2B00%3A00&start_date=2018-08-01T00%3A00%3A00%2B00%3A00" curl -i "https://api-eu.getaround.com/owner/v1/invoices?${query}" \ -H "Authorization: Bearer TOKEN" \ -H "Accept:application/json" \ -H "Content-Type:application/json" ``` And here’s how to get the invoice with the id 12345: ```bash curl -i "https://api-eu.getaround.com/owner/v1/invoices/12345" \ -H "Authorization: Bearer TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json"" ``` See the [endpoints section](#tag/Invoices) of this guide for details about the response format. Dates in request params should follow the ISO 8601 standard. # Authentication All requests must be authenticated with a [bearer token header](https://tools.ietf.org/html/rfc6750#section-2.1). You token will be sent to you by your account manager. Unauthenticated requests will return a 401 status. # Pagination The page number and the number of items per page can be set with the “page” and “per_page” params. For example, this request will return the second page of invoices, and 50 invoices per page: `https://api-eu.getaround.com/owner/v1/invoices?page=2&per_page=50` Both of these params are optional. The default page size is 30 items. The Getaround Owner API follows the [RFC 8288 convention](https://datatracker.ietf.org/doc/html/rfc8288) of using the `Link` header to provide the `next` page URL. Please don't build the pagination URLs yourself. The `next` page will be missing when you are requesting the last available page. Here's an example response header from requesting the second page of invoices `https://api-eu.getaround.com/owner/v1/invoices?page=2&per_page=50` ``` Link: <https://api-eu.getaround.com/owner/v1/invoices?page=3&per_page=50>; rel="next" ``` # Throttling policy and Date range limitation We have throttling policy that prevents you to perform more than 100 requests per min from the same IP. Also, there is a limitation on the size of the range of dates given in params in some requests. All requests that need start_date and end_date, do not accept a range bigger than 30 days. # Webhooks Getaround can send webhook events that notify your application when certain events happen on your account. This is especially useful to follow the lifecycle of rentals, tracking for example bookings or cancellations. ### Setup To set up an endpoint, you need to define a route on your server for receiving events, and then <a href="mailto:owner-api@getaround.com">ask Getaround</a> to add this URL to your account. To acknowledge receipt of a event, your endpoint must: - Return a `2xx` HTTP status code. - Be a secure `https` endpoint with a valid SSL certificate. ### Testing Once Getaround has set up the endpoint, and it is properly configured as described above, a test `ping` event can be sent by clicking the button below: <form action="/docs/api/owner/fire_ping_webhook" method="post"><input type="submit" value="Send Ping Event"></form> You should receive the following JSON payload: ```json { "data": { "ping": "pong" }, "type": "ping", "occurred_at": "2019-04-18T08:30:05Z" } ``` ### Retries Webhook deliveries will be attempted for up to three days with an exponential back off. After that point the delivery will be abandoned. ### Verifying Signatures Getaround will also provide you with a secret token, which is used to create a hash signature with each payload. This hash signature is passed along with each request in the headers as `X-Drivy-Signature`. Suppose you have a basic server listening to webhooks that looks like this: ```ruby require 'sinatra' require 'json' post '/payload' do push = JSON.parse(params[:payload]) "I got some JSON: #{push.inspect}" end ``` The goal is to compute a hash using your secret token, and ensure that the hash from Getaround matches. Getaround uses an HMAC hexdigest to compute the hash, so you could change your server to look a little like this: ```ruby post '/payload' do request.body.rewind payload_body = request.body.read verify_signature(payload_body) push = JSON.parse(params[:payload]) "I got some JSON: #{push.inspect}" end def verify_signature(payload_body) signature = 'sha1=' + OpenSSL::HMAC.hexdigest(OpenSSL::Digest.new('sha1'), ENV['SECRET_TOKEN'], payload_body) return halt 500, "Signatures didn't match!" unless Rack::Utils.secure_compare(signature, request.env['HTTP_X_DRIVY_SIGNATURE']) end ``` Obviously, your language and server implementations may differ from this code. There are a couple of important things to point out, however: No matter which implementation you use, the hash signature starts with `sha1=`, using the key of your secret token and your payload body. Using a plain `==` operator is not advised. A method like secure_compare performs a "constant time" string comparison, which renders it safe from certain timing attacks against regular equality operators. ### Best Practices - **Acknowledge events immediately**. If your webhook script performs complex logic, or makes network calls, it’s possible that the script would time out before Getaround sees its complete execution. Ideally, your webhook handler code (acknowledging receipt of an event by returning a `2xx` status code) is separate of any other logic you do for that event. - **Handle duplicate events**. Webhook endpoints might occasionally receive the same event more than once. We advise you to guard against duplicated event receipts by making your event processing idempotent. One way of doing this is logging the events you’ve processed, and then not processing already-logged events. - **Do not expect events in order**. Getaround does not guarantee delivery of events in the order in which they are generated. Your endpoint should therefore handle this accordingly. We do provide an `occurred_at` timestamp for each event, though, to help reconcile ordering.
No description provided.
No description provided.
No description provided.
No description provided.
No description provided.
No description provided.
No description provided.
No description provided.
No description provided.
No description provided.
No description provided.
No description provided.