Skip to content
Dewangga edited this page Apr 26, 2023 · 24 revisions

Photo Endpoints

Upload To Cloudinary

Endpoint ini digunakan untuk mengunggah foto ke server. Terdapat tiga mode foto yang dapat dipilih yaitu square, landscape, atau portrait.

URL Endpoint

POST http://localhost:5000/api/v2/upload?mode={mode}

Parameter

  • file: file foto yang akan diunggah dalam bentuk form-data.
  • query (string mode):
    • square, landscape, portrait

Authorization

  • Role: "admin" | "user"

Response

Jika request berhasil, maka response yang dihasilkan berupa JSON dengan property PublicId dan Url. PublicId adalah id publik dari foto yang diunggah, sedangkan Url adalah URL foto yang dapat diakses. Jika terdapat kesalahan pada request, maka response akan berisi pesan error.

Contoh Penggunaan

POST http://localhost:5000/api/v2/upload?mode={mode}

Headers:
Authorization: Bearer [access_token]

Body: "file foto yang akan diunggah dalam bentuk form-data"

Respon:
{
    "PublicId": "abc123",
    "Url": "https://example.com/photos/abc123"
}

response error:
{
    "error": "Please provide the correct parameters."
}

Save Photo TO Database

       Endpoint Save Photo digunakan untuk menyimpan foto baru ke dalam database. Endpoint ini hanya dapat diakses oleh pengguna dengan peran 'admin'. Parameter yang diizinkan adalah 'movie', 'actor', atau 'director'.

Request:

  • Method: PUT
  • Endpoint: http://localhost:5000/api/v2/save
  • Header: Authorization dengan token JWT
  • Body: PhotoResponder (berisi PublicId dan Url foto)
  • Query: PhotoQuery (berisi 'to' dan 'id' jika parameter adalah 'actor', 'director', atau 'movie')

Response:

  • Jika berhasil, status code 200 dan ResultValidator dengan Value Unit
  • Jika gagal, status code 400 dan ResultValidator dengan pesan error

Penggunaan:

  • Pastikan sudah memiliki token JWT dengan peran 'admin'
  • Kirimkan request dengan method PUT ke /save dengan menyertakan header Authorization dan body PhotoResponder
  • Jika ingin menyimpan foto ke 'movie', 'actor', atau 'director', sertakan parameter 'to' dan 'id' pada query
  • Jika parameter tidak sesuai, akan mengembalikan pesan error
  • Jika berhasil, akan mengembalikan status code 200 dan Value Unit

Delete Photo

       point ini digunakan untuk menghapus sebuah foto dengan public ID tertentu, dan beberapa parameter foto yang dibutuhkan. Endpoint ini hanya dapat diakses oleh pengguna dengan peran "admin" dan hanya jika parameter yang dibutuhkan adalah "movie", "actor", atau "director". Jika parameter selain itu diberikan, maka endpoint akan memberikan respons dengan status kode 400.

URL Endpoint

DELETE /photos/{publicId}

Parameter

  • publicId: string (wajib) - Public ID foto yang akan dihapus.
  • query (dari tipe PhotoQuery):
    • id: string (wajib) - ID dari parameter foto yang akan dihapus.
    • to: string (wajib) - Parameter yang diberikan harus "movie", "actor", atau "director".

Authorization

  • Role: "admin"

Respons

  • Jika berhasil: status kode 200 dan pesan sukses.
  • Jika gagal: status kode 400 atau 404 dan pesan kesalahan.

Contoh Penggunaan

DELETE /photos/abc123?to=actor&id=5

Headers:
Authorization: Bearer [access_token]

Body:
tidak ada

Respon:
{
    "message": "Success"
}
Clone this wiki locally