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

Photo Endpoints

Unggah ke Cloudinary

       Endpoint ini digunakan untuk mengunggah foto ke server. Terdapat tiga mode foto yang dapat dipilih yaitu kotak (square), landscape, atau potret (portrait). PERHATIKAN JIKA NAMA BERBEDA DENGAN APA YANG ADA DI CONTOH PENGGUNAAN, MAKA BACKEND TIDAK AKAN BISA MEMBACANYA

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

Otorisasi

  • Role: "admin" | "user"

Response

  • 200 OK: Jika foto berhasil di upload di cloudinary dan mengembalikan response.
  • 400 Bad Request: Jika terjadi kesalahan saat menyimpan foto di cloudinary atau tidak ada file yang di body.
  • 404 Not Found: Jika pengguna atau foto tidak ditemukan.

Contoh Penggunaan

POST http://localhost:5000/api/v2/upload?mode=square HTTP/1.1

Headers:
Authorization: Bearer [access_token]

Body: form-data
- file: foto.jpg

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

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' dengan Parameter yang diizinkan adalah 'movie', 'actor', atau 'director'. Sedangkan dengan Parameter 'user', 'user' maupun 'admin' bisa mengaksesnya.

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". Sedangkan dengan Parameter 'user', Peran 'user' maupun 'admin' bisa mengaksesnya.

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"
}

Manage Main

Endpoint ini digunakan untuk mengatur foto utama pengguna. Pengguna dapat menetapkan foto utama mereka dengan mengirimkan ID foto publik ke endpoint ini.

Endpoint

PUT /api/photos/{publicId}/manage-main

Parameter

  • publicId (string, required): ID foto publik yang ingin dijadikan sebagai foto utama.

Response

  • 200 OK: Jika pengaturan foto utama berhasil disimpan.
  • 400 Bad Request: Jika terjadi kesalahan saat menyimpan pengaturan foto utama.
  • 404 Not Found: Jika pengguna atau foto tidak ditemukan.

Contoh Penggunaan

PUT /api/photos/{publicId}/manage-main HTTP/1.1
Host: example.com
Content-Type: application/json
Authorization: Bearer <access_token>

{
    "publicId": "12345"
}
Clone this wiki locally