Skip to content
Dewangga edited this page Jul 7, 2023 · 24 revisions

Photo Endpoints

Save To 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 (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.
  • 401 Unauthorized: Belum mempunyai access token atau access token expired.

Contoh Penggunaan

POST http://localhost:5000/api/v2/upload?mode=square HTTP/1.1
Host: example.com
Content-Type: multipart/form-data
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.

URL Endpoint

PUT http://localhost:5000/api/photos/save?id=1&to=actor

Parameter

  • Body:
{
    "PublicId": "abc123",
    "Url": "https://example.com/photos/abc123"
} 
  • query (dari tipe PhotoQuery):
    • id: string (wajib) - ID dari masing - masing "to" yang dipilih.
    • to: string (wajib) - Parameter yang diberikan harus "movie", "actor", atau "director".

Otorisasi

  • Role: "admin" | "user"

Response

  • 200 OK: Jika foto berhasil di simpan ke Database.
  • 400 Bad Request: Jika terjadi kesalahan saat menyimpan foto di database/tidak ada file yang di body/query parameter tidak sesuai.
  • 404 Not Found: Jika entity dari ID yang diberikan tidak ditemukan.
  • 403 Forbidden: User mengakses endpoint yang tidak sesuai dengan rolenya.
  • 401 Unauthorized: Belum mempunyai access token atau access token expired.

Contoh Penggunaan

PUT http://localhost:5000/api/photos/save?id=1&to=actor HTTP/1.1
Host: example.com
Content-Type: application/json
Authorization: Bearer <access_token>

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

Respon:
{
    "message": "Success"
}

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 http://localhost:5000/api/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".

Otorisasi

  • Role: "admin" | "user"

Response

  • 200 OK: status kode 200 dan pesan sukses.
  • 400 Bad Request: Jika terjadi kesalahan saat menyimpan foto di database atau query to tidak sesuai.
  • 404 Not Found: Jika pengguna atau foto tidak ditemukan.
  • 403 Forbidden: User mengakses endpoint dengan query yang tidak sesuai dengan rolenya.
  • 401 Unauthorized: Belum mempunyai access token atau access token expired.

Contoh Penggunaan

DELETE /photos/abc123?to=actor&id=5 HTTP/1.1
Host: example.com
Content-Type: application/json
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.

URL Endpoint

PUT http://localhost:5000/api/{publicId}/manage-main

Parameter

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

Otorisasi

  • Role: "admin" | "user"

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.
  • 401 Unauthorized: Belum mempunyai access token atau access token expired.

Contoh Penggunaan

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

body: tidak ada

Respon:
{
    "publicId": "12345"
}