Dittofi
  • Tutorials
    • Tutorial Index
    • Quick Start
    • Dittofi Essentials
      • Part 1: Frontend terms and concepts
      • Part 2: Backend terms and concepts
      • Part 3: Connecting frontend and backend
      • Part 4: Dittofi app structure
    • Dittofi App Design
      • 🏗️App architecture 101
      • ◼️Backend app development 101
      • 🟪Frontend app development 101
      • 🔰(optional) Web developer beginner series
  • Learn Frontend
    • 👨‍💻Getting Started
      • Welcome to Dittofi
      • Intro to the Dittofi Design Studio (Frontend)
    • 🟩Pages
    • 🟪Elements
      • Types
        • Button Element
        • Div Block Element
        • Form Block Element
        • Link Block Element
        • List Element
        • Modal Box Element
        • Tabs Element
        • Columns Element
        • Image Element
      • Partials
      • Prefabs
      • Custom
    • 🟧Variables
      • Array
      • Checkbox
      • Collection
      • Collection (Custom Model)
      • Collection (System Custom Model)
      • Custom Model
      • Date
      • Datetime
      • File
      • Json
      • Number
      • Number with decimal
      • Model
      • System Custom Model
      • Text
      • UUID
    • 🟨Events
      • 🟨External
        • HTTP Request
        • Run Endpoint
      • 🟨Flow Control
        • Condition
        • Run Action
        • Loop
        • Sleep
      • 🟨Maths
        • Add
        • Divide
        • Modulus
        • Multiply
        • Subtract
      • 🟨Navigation
        • Open Page
      • 🟨Notifications
        • Alert
        • Confirm
      • 🟨Other
        • Copy To Clipboard
        • Run Custom
      • 🟨Text
        • Concat
        • Contains
        • Ends With
        • I Contains
        • I Ends With
        • I Starts With
        • LTrim
        • RTrim
        • Text To Upper
        • Text To Lower
        • Trim
        • Starts With
      • 🟨Variables
        • Set Field
        • Remove Field
      • Validate
    • 🟦CSS Layouts
      • Holy Grail Layout
      • Side Bar Layout
      • Sticky Footer Layout
      • Sticky Header Layout
      • CSS Frameworks
    • 🔲CSS Frameworks
    • Component Libraries
    • Meta Attributes
  • Learn Backend
    • 🖥️Getting Started
      • Intro to Data
      • Intro to APIs
      • Build your first custom API
      • Actions & Events
    • 🟫Back-End Actions
    • 🟩Custom Models
      • 🟩Attributes
        • Array
        • Checkbox
        • Custom Model
        • Collection (Custom Model)
        • Collection (System Custom Model)
        • Date
        • Datetime
        • File
        • Number
        • Number With Decimal
        • Json
        • Text
    • ◼️Data Models
      • Database Fundamentals
        • Database relationships
      • ◼️Columns
        • Attachment
        • Auto Increment
        • Checkbox
        • Date
        • Datetime
        • Duration
        • Email
        • Long text
        • Link to another record field
        • Number
        • Number with decimal
        • Password
        • Phone number
        • Percent
        • Price
        • Rating
        • Single select
        • Single line text
        • URL
    • 🟥Events
      • 🟦Arrays
        • Append
        • Array Pop
        • At
        • Length
        • Prepend
        • Range
      • 🟦Conversions
        • Base64 Encode
        • Base64 Decode
        • Json Decode
        • Json Encode
        • Path Escape
        • Path Unescape
        • Query Escape
        • Query String Parse
        • Query Unescape
        • To Bool
        • To Float
        • To Int
        • To Str
        • Yaml Encode
        • Yaml Decode
      • 🟦Database Requests
        • Create
        • Create Or Update
        • Delete
        • Has Record
        • Read Event
        • Update
      • 🟦External
        • HTTP Request
        • SFTP Download
        • SFTP Upload
      • 🟦Files
        • CSV Reader Event
        • CSV Writer Event
        • File Read
        • File Save
        • File Size
        • File Type
        • JSON Reader
        • PDF Generator
      • 🟦Flow Control
        • Condition
        • Loop
        • Return
        • Run Action
        • Sleep
      • 🟦Notifications
        • Send Mail
        • Connect Websocket
        • Message Websocket
      • 🟦Maths
        • Add
        • Acos
        • Acosh
        • Asin
        • Asinh
        • Atan
        • Atanh
        • Cbrt
        • Ceil
        • Divide
        • Modulus
        • Multiply
        • Subtract
      • 🟦Security
        • Compare Password
        • JWT Decode
        • JWT Encode
        • Login
        • Logout Web User
        • Password Generator
        • Random Number
      • 🟦Time
        • Add Time
        • Day
        • Format Time
        • Minute
        • Nanosecond
        • Parse Time
        • Second
        • Time In
        • Year
        • Year Day
      • 🟦Text
        • Concat
        • Contains
        • Ends With
        • Execute Template
        • I Contains
        • I Ends With
        • I Starts With
        • Starts With
        • LTrim
        • RTrim
        • Replace
        • Regex Find All String
        • Regex Find String
        • Regex Match String
        • Trim
        • Text To Lower
        • Text To Upper
        • Text To Title
        • Url Getarg
      • 🟦Other
        • Assign
        • Run Custom
        • Redirect Web Page Event
        • Render Web Template Event
    • 🟧Variables
      • Array
      • Checkbox
      • Collection
      • Collection (Custom Model)
      • Collection (System Custom Model)
      • Custom Model
      • Date
      • Datetime
      • File
      • Json
      • Number
      • Number with decimal
      • Model
      • System Custom Model
      • Text
      • UUID
    • 🟪Webservices
  • Templates
    • Two sided marketplace template
      • Introduction
        • Part I: Installing and setting up the marketplace template
        • Part II: Understanding what features are included in the marketplace template
        • Part III: Customizing your marketplace frontend without coding
        • Exploring Dittofi's marketplace API
      • Listings
        • How to create a marketplace listing
    • How to build a CRUD app
  • Third Party APIs
    • OAuth 2.0 APIs
      • Introduction To OAuth 2.0
      • Google OAuth 2.0 - PART I
      • Google OAuth 2.0 - PART II
  • Dittofi Admin
    • Your Account
      • Workspace Admin
      • Manage Billing
      • Connect a custom domain
      • How to use a discount code to Dittofi Pro
  • FAQ
    • API Generator
    • How to write custom SQL?
    • Why does my image not display?
    • How can I set up Google Analytics?
    • Exporting and deploying my frontend code
    • What is a partial and what is a prefab?
    • How to set up a basic mulit tenant app on Dittofi
    • How to write a custom endpoint in Dittofi
    • How to integrate Font Awesome into Dittofi
    • How can I set up Dittofi to run on my own private server?
    • How to add roles such as Super Admin, Admin, Manager & User
    • How to prevent duplicate records being added to the database
    • What to do when relation cannot be created because their is violating data in the referenced table
  • Change Logs
    • Dittofi Change Logs
Powered by GitBook
On this page
  • Setting up a DELETE endpoint
  • Linking our DELETE Endpoint to an action

Was this helpful?

  1. Learn Backend
  2. Events
  3. Database Requests

Delete

PreviousCreate Or UpdateNextHas Record

Last updated 2 years ago

Was this helpful?

The delete event allows you to delete a record in one of your data models. The delete event is used in most software applications, for example, in social media platforms such as Facebook or Linkedin, users are able to delete posts. Most platforms also include a "system settings" page where users can delete account. Whenever you want to give your users the ability to delete something, you will need to use the delete endpoint, action & event. In this tutorial we cover:

  • Setting up a DELETE endpoint

  • Linking our DELETE endpoint to an action

  • Deleting multiple records in our data model

For the purpose of this example, we will use a data model that holds different social media posts for different users.

Our goal is to set up a DELETE Endpoint that allows our users to delete data records in our data model whenever the endpoint is triggered.

There are two ways to do this, we can either:

  1. Build the endpoint, action & event from scratch.

In this article we will cover how to build the endpoint, action & event from scratch.

Setting up a DELETE endpoint

In this section we are going to create a PUT Endpoint manually to update a single record in our Posts Data Model. To do this, head on over to the endpoints tab & press the "+ New Endpoint" button to create a new endpoint.

Next, we fill in the basic details for our endpoint as below.

Note, our Path parameter has the extension {id}. This is going to be used to identify which record in our Posts Data Model we are going to delete.

The id is what is called a "Path Variable". Essentially, the part of our URL that is in curly braces is just a placeholder for a dynamic, or variable value.

Ditto Tip: the reason that we use the id is twofold. First, the id field is automatically added by Dittofi to every row of data inside your data model. Second, the Id value is auto incrementing and therefore is a unique identifier for all rows in your Data Model.

The value of the placeholder or variable "id" can be set inside the Path Variables section of our endpoint.

Note that the in the variable settings, we pick the Kind, Number and give the same name and label as the value inside the curly braces in our Endpoint Path, "id", as below.

The reason we pick the Kind Number is that the id is a number field in our Posts Data Model. The name of our Path Variable also needs to match both in spelling and capitalization of the id inside the curly braces of our Endpoint Path.

The final step is to save our endpoint and close it.

Linking our DELETE Endpoint to an action

Next, we need to link our Delete social media post endpoint to an action. To do this, we start by heading over to the actions tab & pressing "+ New Action".

Next we give our action a name, call it "Delete social media post".

Next, we link our Delete Social Media Post action to our endpoint.

Next, we need to look up the record in the Posts Data Model (the social media post) that we want to delete. To do this, we begin by adding a variable of Kind Model to our action called "PostToDelete". The model we use is our Social Media Posts Model.

Our variable is going to store just one record, that we want to delete. To get just one record out of our data model, we need to add a basic filter. To do this, use the Where clause in the "New Variables" browser, as below.

Notice, that we filter according to the id that is passed into our Delete Social Media Posts Action from our associated endpoint. This value, as we saw in the previous section is variable.

Next we add an Delete Event to our actions and events graph by clicking on the "+ Add Event" button.

Using the panel on the right hand side of the screen, we can then choose our event type and configure our event. The table below describes what each of the configuration options does.

Option Name
Option Description
Example

Event Type

This is the event type that we want to run.

Delete

Description

This is used to provide a description to our event.

"Event to delete a post."

Object

This is the post that we are looking to delete

In our case, this will be the PostToDelete that we looked up based on the id.

Variables

This is variable that can be declared inside the event. This variable can be used by this event and all subsequent events.

In our example, we don't need to set this variable.

The final configuration for our event looks like the screenshot below.

Testing Our DELETE Endpoint, Action & Event

To test our DELETE Endpoint, Action & Event, we need to (A) generate the code, (B) test our endpoint from within the endpoints tab by adding a dummy id, (C) check our endpoint response code & (D) look at our Posts Data Model to see if the record has been deleted. The video below shows this process in action.

Use the API Generator, see , OR

🟥
🟦
API Generator
Basic DELETE Endpoint Details
Path Variable Popup
Adding a new event