ProcessorsMediaResource

Introduction

Processors Media Resource.

Hosts the API for app-store related processor media and interactions:

  • Listing app-store categories and visible publishers.

  • Managing processor reviews (add, update, delete, list).

  • Managing review comments (add, update, delete, list).

All endpoints are under the base path /processormedia.

All endpoints require a valid session via the x-session-token header.

Permission and ownership notes:

  • Access to reviews/comments is guarded through access to the underlying processor.

  • Delete operations for reviews/comments require ownership checks on the target entity.

  • Some IDs received as query parameters are URL-decoded server-side before use.

Common Models

  • AppCategoryViewModel: id, category, count

  • ReviewViewModel: id, processorId, userId, vote, date, title, comment

  • ListReviewsViewModel: reviews, avgVote, numberOfOneStarVotes, numberOfTwoStarVotes, numberOfThreeStarVotes, numberOfFourStarVotes, numberOfFiveStarVotes, alreadyVoted

  • CommentDetailViewModel: commentId, reviewId, userId, date, text

  • CommentListViewModel: commentId, reviewId, userId, date, text

  • PublisherFilterViewModel: publisher, nickName, appCount

APIs

GET /processormedia/categories/get

  • Description: Returns the list of all application categories available in the app store.

  • HTTP Verb: GET

  • Headers: x-session-token

  • Query params: none

  • Body: none

  • Success:
    • 200 OK, body: array of AppCategoryViewModel

  • Return codes:
    • 200 OK

    • 401 Unauthorized (invalid session)

POST /processormedia/reviews/add

  • Description: Adds a new review for a processor.

  • HTTP Verb: POST

  • Headers: x-session-token

  • Query params: none

  • Body: ReviewViewModel
    • processorId (string, required)

    • vote (float, required, valid range 0.0 to 5.0)

    • title (string, optional)

    • comment (string, optional)

  • Success:
    • 200 OK

  • Notes:
    • One review per processor per user is enforced (already voted -> rejected).

    • Caller must be allowed to access the processor.

  • Return codes:
    • 200 OK

    • 400 Bad Request (invalid payload, vote out of range, missing/invalid processor, or already voted)

    • 401 Unauthorized (invalid session)

    • 403 Forbidden (user cannot access processor)

POST /processormedia/reviews/update

  • Description: Updates an existing review.

  • HTTP Verb: POST

  • Headers: x-session-token

  • Query params: none

  • Body: ReviewViewModel
    • id (string, required) — review ID to update

    • processorId (string, required)

    • vote (float, required, valid range 0.0 to 5.0)

    • title (string, optional)

    • comment (string, optional)

  • Success:
    • 200 OK

  • Notes:
    • The endpoint validates vote range, then updates the repository entry.

  • Return codes:
    • 200 OK

    • 400 Bad Request (invalid payload, invalid vote, or update failed)

    • 401 Unauthorized (invalid session)

DELETE /processormedia/reviews/delete

  • Description: Deletes a review by processor/review ID and removes all comments associated with that review.

  • HTTP Verb: DELETE

  • Headers: x-session-token

  • Query params:
    • processorId (string, required) — processor ID (URL-decoded server-side)

    • reviewId (string, required) — review ID (URL-decoded server-side)

  • Body: none

  • Success:
    • 200 OK

  • Notes:
    • Caller must be the owner of the review.

    • After successful review deletion, child comments are deleted.

  • Return codes:
    • 200 OK

    • 400 Bad Request (invalid processor/review or delete count is zero)

    • 401 Unauthorized (invalid session or user is not review owner)

GET /processormedia/reviews/getlist

  • Description: Returns paginated reviews for a processor plus aggregate rating statistics.

  • HTTP Verb: GET

  • Headers: x-session-token

  • Query params:
    • processorName (string, required) — processor name

    • page (integer, optional) — page index, default 0

    • itemsperpage (integer, optional) — items per page, default 4

  • Body: none

  • Success:
    • 200 OK, body: ListReviewsViewModel

  • Notes:
    • alreadyVoted is set for the current user.

    • If no reviews exist, returns an empty ListReviewsViewModel.

    • Pagination is applied after computing full statistics.

  • Return codes:
    • 200 OK

    • 400 Bad Request (invalid processor)

    • 401 Unauthorized (invalid session)

    • 403 Forbidden (user cannot access processor)

POST /processormedia/comments/add

  • Description: Adds a comment to an existing review.

  • HTTP Verb: POST

  • Headers: x-session-token

  • Query params: none

  • Body: CommentDetailViewModel
    • reviewId (string, required)

    • text (string, required)

  • Success:
    • 200 OK

  • Notes:
    • The endpoint resolves review -> processor and enforces processor access permissions.

  • Return codes:
    • 200 OK

    • 400 Bad Request (invalid payload, missing/invalid review, or missing processor)

    • 401 Unauthorized (invalid session)

    • 403 Forbidden (user cannot access processor)

POST /processormedia/comments/update

  • Description: Updates an existing comment.

  • HTTP Verb: POST

  • Headers: x-session-token

  • Query params: none

  • Body: CommentDetailViewModel
    • commentId (string, required)

    • reviewId (string, required)

    • text (string, required)

  • Success:
    • 200 OK

  • Notes:
    • The updated comment entity always uses the caller as userId and the current timestamp.

  • Return codes:
    • 200 OK

    • 400 Bad Request (invalid payload or update failed)

    • 401 Unauthorized (invalid session)

DELETE /processormedia/comments/delete

  • Description: Deletes one comment from a review.

  • HTTP Verb: DELETE

  • Headers: x-session-token

  • Query params:
    • reviewId (string, required) — parent review ID (URL-decoded server-side)

    • commentId (string, required) — comment ID (URL-decoded server-side)

  • Body: none

  • Success:
    • 200 OK

  • Notes:
    • Caller must be the owner of the comment.

  • Return codes:
    • 200 OK

    • 400 Bad Request (invalid review/comment or delete count is zero)

    • 401 Unauthorized (invalid session or user is not comment owner)

GET /processormedia/comments/getlist

  • Description: Returns all comments associated with a review.

  • HTTP Verb: GET

  • Headers: x-session-token

  • Query params:
    • reviewId (string, required)

  • Body: none

  • Success:
    • 200 OK, body: array of CommentListViewModel

  • Notes:
    • If there are no comments, returns an empty CommentListViewModel object.

    • Access to comments is validated through the review’s processor.

  • Return codes:
    • 200 OK

    • 400 Bad Request (invalid review or missing processor)

    • 401 Unauthorized (invalid session)

    • 403 Forbidden (user cannot access processor)

GET /processormedia/publisher/getlist

  • Description: Returns visible publishers in the marketplace with the number of visible apps per publisher.

  • HTTP Verb: GET

  • Headers: x-session-token

  • Query params: none

  • Body: none

  • Success:
    • 200 OK, body: array of PublisherFilterViewModel

  • Notes:
    • Includes only deployed processors that are shown in store.

    • For non-public processors, entries are included only if the caller is owner or has sharing permissions.

    • nickName is taken from the publisher’s public nickname, then falls back to name, then to user ID.

  • Return codes:
    • 200 OK

    • 401 Unauthorized (invalid session)

    • 500 Internal Server Error (unable to load deployed processors)